拒否されたプロセスはSIGHUP以外の信号を受信しますか?

拒否されたプロセスはSIGHUP以外の信号を受信しますか?
  • シェルがジョブにのみシグナルを送信でき、ジョブ以外のプロセスにシグナルを送信できないことは正しいですか?

  • disownシェルのタスクリストからタスクを移動します。これは、拒否されたプロセスが親シェルからすべての信号(SIGHUPだけでなく)を受信するわけではありませんか?それでも他の信号を受信して​​いる場合、なぜこれが起こりますか?

答え1

自分が所有するすべてのプロセスにいつでもシグナルを送信できます。シェル自体はおそらくそうではありません。

答え2

テストしやすい:

sleepSIGUSR1を受け取ると死にます:

$ 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
$

関連情報