【问题标题】:Ant sshexec task unable to execute remote script file separate from sessionAnt sshexec 任务无法执行与会话分开的远程脚本文件
【发布时间】:2016-10-14 14:51:30
【问题描述】:

我有一个要从 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。

【问题讨论】:

    标签: bash unix jenkins ant jboss


    【解决方案1】:

    没关系,我找到了。还是需要结合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 &'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-16
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多