当主管重启时,jenkins杀死ssh会话

时间:2018-07-30 13:29:46

标签: jenkins ssh supervisord

我正在使用jenkins在远程服务器上执行一些操作。 我有一个执行Shell命令,其中执行以下操作:

sudo ssh <remote server> 'sudo service supervisor restart'
sleep 30

当jenkins到达第一行时,我可以看到“重新启动Supervisor”,但是片刻之后,我看到jenkins关闭了ssh连接并移至第二行。 我尝试在重新启动命令后添加“ sleep 30”,但仍然无法正常工作。 似乎jenkins不等待超级用户重新启动命令完成。 问题是它并非总是会发生,只是有时会发生,但是当它失败时确实会带来很多问题。

1 个答案:

答案 0 :(得分:0)

我认为您不能确定由supervisor启动的所有进程在重新启动后都处于“就绪”状态。即使重新启动操作会等待进程启动,它也不知道它们是否已“就绪”。

在需要知道某项服务是否可用的docker-compose设置中,我为此进行了额外的“真正准备就绪”检查-可选地在睡眠/等待循环中进行。如果您要启动的进程打开了端口,则可以为此使用'wait-for'的一种形式。