什么信号将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