Ant sshexec任务无法与会话分开执行远程脚本文件

时间:2016-10-14 14:51:30

标签: bash unix jenkins ant jboss

我有一个可以从Jenkins调用的Ant脚本 - 在其他部署任务之后 - 启动一个JBoss服务器。部署包已经包含一个启动脚本,它包装了JBoss运行脚本:

[...]/bin/run.sh -b ip -c config >/dev/null 2>&1 &

启动脚本在手动执行时运行正常(即ssh到服务器和sudo ./startup.sh)

现在我无法从sshexec任务调用此启动脚本。该任务可以执行启动脚本,JBoss确实会启动,但会在任务返回后立即终止并继续执行下一个任务 - 类似于直接运行run.sh并关闭会话。

我的任务很标准

<sshexec host="host" username="username" password="password"
command="echo password | sudo -S sh ${JBOSS_HOME}/server/config/startup.sh" />

我很困惑。上面的启动脚本是否应该已经从会话中单独启动JBoss?知道如何解决这个问题吗?

远程系统是Redhat 6。

1 个答案:

答案 0 :(得分:0)

没关系,我找到了。仍需要将nohup和后台运行与启动脚本相结合。再加上这里的“肮脏的解决方法” https://unix.stackexchange.com/questions/91065/nohup-sudo-does-not-prompt-for-passwd-and-does-nothing(实际上很棒)

最终结果:

echo password | sudo -S env && sudo sh -c 'nohup startup.sh > /dev/null 2>&1 &'