我在 /etc/init 中创建了我自己的 upstart 脚本,我可以启动和停止它。
现在,我希望当文件(/etc/my-app/restart-requested.txt)存在(或者更好地说是被触碰)时重新启动该服务。
我对以前的 /etc/init.d/ 服务的解决方案是一个 cron-job,它定期检查重启文件,并在文件存在时调用重启。
upstart 有更好的解决方案吗?
答案1
6 年后,我发现 upstarts 保证首先进行处理stop on
,然后start on
:
http://upstart.ubuntu.com/cookbook/#ordering-of-stop-start-operations
这意味着您可以使用
start on file FILE=/etc/my-app/restart-requested.txt EVENT=modify
stop on file FILE=/etc/my-app/restart-requested.txt EVENT=modify
可能您不再需要它了,但我遇到了同样的问题并发现了您的问题,所以也许将来有人也可以使用这个解决方案。
答案2
- 安装因克龙
- 投入
/etc/my-app/restart-requested.txt IN_CLOSE_WRITE restart myservice
/etc/incron.d/myservice