jenkins在supervisord重新启动时终止ssh会话



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

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

当jenkins到达第一行时,我可以看到"Restarting Supervisor",但过了一会儿,我看到jenkins关闭了ssh连接,然后转到第二行。我试着在重新启动命令后添加"睡眠30",但仍然不起作用。詹金斯似乎没有等待主管重启命令完成。问题是,它不是总是发生的事情,只是偶尔发生,但当它失败时,确实会产生很多问题。

我认为您永远无法确定supervisord启动的所有进程在重新启动后都处于"就绪"状态。即使重新启动操作将等待进程启动,它也不知道它们是否"准备就绪"。

在需要知道某个服务是否可用的docker compose设置中,我使用了一个额外的"真正准备好了"检查——可以选择在睡眠/等待的循环中。如果您正在启动的进程打开了一个端口,您可以使用"等待"的变体之一。

最新更新