1

我有一个 bash 脚本,我从 Jenkins 的构建步骤中调用它。在这个 bash 脚本中有一个 nohup 命令,用于在后台调用不同的脚本,例如:

#!/bin/bash
nohup otherScript.sh &

构建步骤完成后,我转到应该创建 nohup.out 的路径,但那里什么都没有。关于发生了什么的任何想法?

4

2 回答 2

6

您应该确保输出进入构建的工作区。这将避免其他目录的权限问题。

nohup otherScript.sh > $WORKSPACE/scriptOutput.txt 2>&1 &
于 2013-06-03T18:01:23.963 回答
3

引自man nohup

如果标准输入是终端,则将其从 /dev/null 重定向。如果标准输出是终端,nohup.out则尽可能将输出附加到,$HOME/nohup.out否则。如果标准错误是终端,则将其重定向到标准输出。要将输出保存到 FILE,请使用nohup COMMAND > FILE.

从 Jenkins 运行命令可能意味着它STDOUT不是终端,因此nohup.out没有创建。正如gareth_bowles已经建议的那样,您应该将输出重定向到具有定义路径的文件:

nohup script.sh >/path/to/output.log 2>&1 &
于 2013-06-03T18:15:32.627 回答