![upstart/initctl 使用什么信号来重新启动作业?](https://linux22.com/image/526896/upstart%2Finitctl%20%E4%BD%BF%E7%94%A8%E4%BB%80%E4%B9%88%E4%BF%A1%E5%8F%B7%E6%9D%A5%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E4%BD%9C%E4%B8%9A%EF%BC%9F.png)
什么信号将upstart
/initctl
用于重新启动作业?此外,有没有办法指定应使用 SIGHUP?
另外,有没有办法定义一个reload
发送 SIGHUP 的自定义命令?还是我需要到外面去做upstart
这件事?
答案1
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
或者我需要去 upstart 之外的地方做这件事吗?
使用initctl reload
或kill
/killall -HUP