我有一个脚本调用下标,并试图释放/否认这个脚本,以便jenkins调用脚本可以成功完成。 它似乎在命令行上释放脚本,因此我可以在命令行(SSH)上注销或执行其他脚本,但Jenkins等待释放的脚本完成。 有没有办法解决它?
#!/bin/bash /home/oracle/example/subscr.sh>temp-log.log</dev/null& disown -h echo "Done" exit 0
#!/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
screen 在这种情况下, GNU屏幕可以提供相同的function,即在其他地方发送输出的情况下运行命令。 它也有奖金function,可以重新附加到过程的标准input和标准输出,而不必重新启动它,如果有必要。 (在文本缓冲区中很难演示screen 。)