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

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

什么信号将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 reloadkill/killall -HUP

相关内容