2011-12-20 33 views
1

我有一个脚本调用下标并尝试释放/取消此脚本,以便Jenkins调用该脚本可以成功完成。它似乎在命令行上释放脚本,因此我可以在命令行(SSH)上注销或执行其他脚本,但Jenkins等待释放的脚本完成。有没有办法解决它?调用下标时,Bash脚本将不会释放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 

做这件事时,詹金斯只是挂起不休,直到我杀SUBSCR执行。

回答

2

尝试在super.sh中使用nohup /home/oracle/example/subscr.sh >temp-log.log &而不是disown -h。在您的版本中,subscr.sh中的stderr未被重定向,这可能会导致您的问题。

+0

谢谢。这似乎是在Jenkins的包装器中运行的,所以这很有帮助,因为我们实际上是通过调用SSH脚本完成的,并且它已经发布。 – 2011-12-20 15:33:51