我有一个bash脚本,我从Jenkins的构建步骤调用。在这个bash脚本中有一个nohup命令,用于在后台调用不同的脚本,例如:
#!/bin/bash
nohup otherScript.sh &
构建步骤完成后,我将转到应该创建nohup.out的路径,但那里什么都没有。关于发生了什么的任何想法?
答案 0 :(得分:6)
您应确保输出进入构建工作区。这样可以避免其他目录的权限问题。
nohup otherScript.sh > $WORKSPACE/scriptOutput.txt 2>&1 &
答案 1 :(得分: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 &