我正在运行一个服务守护进程工具在发送 TERM 信号后需要几秒钟才能停止。我需要在脚本中停止它,然后等待该过程停止,然后继续拍摄 LVM 快照或重新启动服务。
daemontools 是否提供了实现此目的的方法?如果没有,最佳方法是什么?我原本想在 svcok 以 0 退出时休眠,但这似乎是一个常见问题,而且有更简单的解决方案。您觉得如何?
答案1
我已经使用过的一种方法是换一种方式来解决问题,在运行脚本中,您可以在运行应用程序之前执行任何您想做的事情,因此您可以这样做:
#!/bin/sh
# backup anything you want
rsync xxxx
exec /path/to/app
进而:
svc -du /path/to/service
将停止应用程序,并在停止后进行备份,然后重新启动它。
虽然它不完全符合您的要求,但它达到了同样的目标,而且效果很好:)