이것POSIX 시스템 인터페이스 사양설명하다:
기본 동작은
SIGCONT
프로세스가 중지된 곳에서 실행을 재개하는 것입니다.뒤쪽에보류 중인 차단 해제 신호가 먼저 처리됩니다.
여기서 "이후"란 무엇을 의미합니까? "이전"이어야 하지 않나요? 그것이 의미하는 바에 대한 몇 가지 예가 있습니까?
APUE에도 비슷한 상황이 있습니다.
상위 프로세스가 종료되면 프로세스 그룹이 고아가 되므로 POSIX.1에서는 새로 고아가 된 프로세스 그룹(자식 프로세스와 마찬가지로)에서 중지된 각 프로세스에 중단 신호(
SIGHUP
)와 계속 신호(SIGCONT
) 를 보내도록 요구합니다.그래야 아이가 계속할 수 있고,뒤쪽에끊김 신호를 처리합니다. 보류 중인 신호에 대한 기본 작업은 프로세스를 종료하는 것이므로 신호를 포착하기 위한 신호 처리기를 제공해야 합니다. 따라서 sig_hup 함수의 printf가 pr_ids 함수의 printf 앞에 나타날 것으로 예상합니다.
'이후'는 '이전'을 의미하지 않나요?
존재하다SIGCONT
SIGHUP
고아 Linux 프로세스 그룹 의 순서위의 두 문장에서는 "이후" 대신 "이전"을 제안하는 것 같습니다. 아니면 제가 잘못 이해했을 수도 있습니다.
SIGHUP
하위 프로세스가 실행을 재개할 때까지 메시지를 전달할 수 없습니다. 프로세스가 중지되면SIGCONT
및 를 제외한 모든 신호 전달이 중단됩니다SIGKILL
.그래서
SIGHUP
먼저 도착하지만까지 처리할 수 없습니다.SIGCONT는 프로세스 실행을 깨웁니다.
감사해요.
답변1
아니요, 그 이후를 의미합니다. 관건은 '실행 재개'프로세스가 중지되는 곳".
신호처리가 먼저 이루어지고,그 다음에실행은 계속됩니다.
답변2
신호.c POSIX 1b 호환 신호 커널 코드
에서 검색하세요 SIGCONT
. SIGCONT
이 신호가 발견되면 코드가 보류 중인 신호를 찾는다는 것을 알 수 있습니다 .