哪个是重启daemontools服务的更好方法?

时间:2012-03-14 20:08:25

标签: linux unix service signals

您已将代码更新推送到daemontools服务,并希望重新启动它以便获取更改。服务本身很简单,没有内置信号处理。哪种方式更好?

  1. svc -d; sleep 5; svc -u
    发送TERM然后继续。等待服务实际退出,然后重新启动它。
  2. svc -h
    发送HUP信号。该过程将在接收到信号时死亡,daemontools将重新启动它。
  3. 我总是在第一次做一些变化,但今天有人指出我们实际上也可以做HUP,而且我更喜欢这样,但我已经做了另外这么长时间我能做到'记得是否有原因。

    我认为这可能是因为等待I / O的不间断睡眠过程忽略了信号,但根据wikipedia,“当进程不间断地睡眠时,睡眠过程中积累的信号会在进程中被注意到从系统调用或陷阱返回。“

    有人对最佳做法有明智的意见吗?

2 个答案:

答案 0 :(得分:2)

看起来选项2(发送HUP信号)有点干净,但最终,两者都可以完成工作,而且两者都不具备内在优势。

答案 1 :(得分:0)

发送SIGHUP。打字时间短,不会让你等待很长时间。