调用下标时,Bash脚本不会为Jenkins释放

我有一个脚本调用下标,并试图释放/否认这个脚本,以便jenkins调用脚本可以成功完成。 它似乎在命令行上释放脚本,因此我可以在命令行(SSH)上注销或执行其他脚本,但Jenkins等待释放的脚本完成。 有没有办法解决它?

super.sh

#!/bin/bash /home/oracle/example/subscr.sh>temp-log.log</dev/null& disown -h echo "Done" exit 0 

subscr.sh

 #!/bin/bash while [ false ]; do echo "Still Working" sleep "5s" done 

当这样做的时候,jenkins一直挂着,直到我杀死了执行官。

有两种方法我可以想到做到这一点。

nohup

命令nohup将运行一个完全从terminal分离的子命令,并将其输出发送到一个文件:

 $ nohup ls appending output to nohup.out $ cat nohup.out 20111118153620 nohup.out 

GNU screen

在这种情况下, GNU屏幕可以提供相同的function,即在其他地方发送输出的情况下运行命令。 它也有奖金function,可以重新附加到过程的标准input和标准输出,而不必重新启动它,如果有必要。 (在文本缓冲区中很难演示screen 。)