哪个更好的方法来重新启动守护进程服务?

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

  1. svc -d; sleep 5; svc -u
    发送TERM,然后继续。 等待服务实际退出,然后重新启动它。
  2. svc -h
    发送一个HUP信号。 这个过程会在接收到信号时死掉,守护进程会重新启动。

我一直在做一些变化,但有人指出,我们今天也可以做HUP,而且我更喜欢这个,但是我一直这么做,我不记得是否有一个原因。

我认为这可能是因为在I / O上等待不间断睡眠的过程忽略了信号,但是根据维基百科的说法,“当进程不间断地睡眠时,当系统调用或陷阱“。

任何人对最佳实践都有知情的意见?

看起来,选项2(发送一个HUP信号)稍微干净一点,但是最终,两者都能完成工作,而且本质上也不是优越的。

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