답변:
각 신호에는 "기본 처리"가 있습니다. 프로세스는 해당 신호를 수신 할 때 기본적으로 수행하는 작업입니다. signal(7)
매뉴얼 페이지 에는 다음과 같은 표가 있습니다.
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
...
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGUSR1
그리고 SIGUSR2
둘 다 기본 조치를 취 Term
합니다. 프로세스가 종료됩니다. dd
신호를 가로 채기 위해 처리기를 등록하고 신호로 유용한 작업을 수행하지만 너무 빨리 신호를 보내면 처리기를 아직 등록 할 시간이 없으므로 기본 동작이 대신 발생합니다.
strace
쉘 스크립트에서 출력을 캡처하고 파싱하는 것과 같은 우스꽝스러운
{ dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobs
. 설명하는 효과를 재현하십시오.