我希望在 upstart 重新启动进程时运行与启动进程时不同的命令。具体来说,我正在使用 Thin,并且想执行滚动重新启动(通过不同的命令内置到 Thin),而不是停止/启动。
这对于 upstart 来说可行吗,还是我需要开始寻找其他解决方案?
答案1
这不可能。Job 本身并不知道它正在重新启动。
我建议你使用两个不同的作业。Job A
一个执行第一个变体,Job B
另一个在失败时启动。如果失败,事件Job A
中会附加额外信息(请参阅stopping
Job A
http://upstart.ubuntu.com/cookbook/#id109),因此Job B
应有start on
如下节:
start on stopping JobA RESULT=failed
和
respawn
保持下去。根本respawn
不应该添加。Job A
如果成功退出,作业将不会启动Job A
,但仅在出现错误的情况下才会启动。