被拒绝的进程是否会收到 SIGHUP 以外的信号?

被拒绝的进程是否会收到 SIGHUP 以外的信号?
  • shell 只能向其作业发送信号,但不能向不是其作业的进程发送信号,这是否正确?

  • disown将作业移出 shell 的作业列表。这是否意味着一个被拒绝的进程不会从其父 shell 接收所有信号(不仅仅是 SIGHUP)?如果它仍然会收到其他信号,为什么会这样呢?

答案1

您始终可以向您拥有的任何进程发送信号。外壳本身可能不会。

答案2

易于测试:

sleep如果收到 SIGUSR1 就会死亡:

$ sleep 999 &
[1] 7399
$ kill -USR1 7399
$
[1]+  User defined signal 1   sleep 999

因此,让我们否认它,看看它是否能幸存:

$ sleep 999 &
[1] 7396
$ disown %1
$ jobs
$ ps -fp 7396
UID        PID  PPID  C STIME TTY          TIME CMD
schaller  7396  7360  0 19:59 pts/0    00:00:00 sleep 999
$ kill -USR1 7396
$ ps -fp 7396
UID        PID  PPID  C STIME TTY          TIME CMD
$

相关内容