거부된 프로세스가 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
$

관련 정보