upstart / initctl使用什么信号来重新启动作业?


10

upstart/ 将initctl使用什么信号重新启动作业?此外,是否有任何方法可以指定应使用SIGHUP?

或者,是否有定义自定义reload命令的方法,该命令将发送SIGHUP?还是我需要外出upstart去做?


我相信这是SIGQUIT;在大多数情况下,对SIGHUP的响应是特定于应用程序的。
克里斯·S

那是有道理的。请参阅我的说明编辑。
David Eyk

Answers:


23

upstart / initctl将使用什么信号来重新启动作业?

SIGTERM

$ strace -fp `pgrep cron` 2> ~/strace &
$ initctl restart cron
$ cat ~/strace
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x804a280, [CHLD], SA_RESTART}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {57, 153662204})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---
Process 2275 detached

此外,是否有任何方法可以指定应使用SIGHUP?

使用: initctl reload

或者,是否有定义自定义重载命令以发送SIGHUP的方法?

使用: initctl reload

还是我需要走出暴发户才能做到这一点?

使用initctl reloadkill/killall -HUP


很彻底 谢谢。猜猜我可以在手册页中找到其中的一些内容!
David Eyk

如果服务未及时停止,则它已升级为SIGKILL。“停止工作涉及向其发送SIGTERM。...但是,如果该服务花费的时间超过终止超时秒数(默认值为
scipilot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.