SIGUSR1로 인해 프로세스가 종료되는 이유는 무엇입니까?

SIGUSR1로 인해 프로세스가 종료되는 이유는 무엇입니까?

놀랐어요논평다른 질문들 중:

시작 후 너무 일찍 dd USR1 신호를 보내면(예: bash 스크립트에서 시작 후 줄) 실제로 신호가 종료됩니다.

누가 설명할 수 있나요?

답변1

각 신호에는 프로세스가 신호를 수신할 때 수행하는 기본 작업인 "기본 처리"가 있습니다. 매뉴얼 페이지에는 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신호를 가로채서 유용한 작업을 수행하기 위해 핸들러를 등록합니다. 그러나 신호를 너무 빨리 내보내면 핸들러를 등록할 시간이 없으므로 기본 동작이 발생합니다.

관련 정보