보류 중인 차단 해제 신호를 처음 처리하기 전이나 후에 중지된 프로세스의 실행을 재개하는 SIGCONT의 기본 작업이 있습니까?

보류 중인 차단 해제 신호를 처음 처리하기 전이나 후에 중지된 프로세스의 실행을 재개하는 SIGCONT의 기본 작업이 있습니까?

이것POSIX 시스템 인터페이스 사양설명하다:

기본 동작은 SIGCONT프로세스가 중지된 곳에서 실행을 재개하는 것입니다.뒤쪽에보류 중인 차단 해제 신호가 먼저 처리됩니다.

여기서 "이후"란 무엇을 의미합니까? "이전"이어야 하지 않나요? 그것이 의미하는 바에 대한 몇 가지 예가 있습니까?

APUE에도 비슷한 상황이 있습니다.

상위 프로세스가 종료되면 프로세스 그룹이 고아가 되므로 POSIX.1에서는 새로 고아가 된 프로세스 그룹(자식 프로세스와 마찬가지로)에서 중지된 각 프로세스에 중단 신호( SIGHUP)와 계속 신호( SIGCONT) 를 보내도록 요구합니다.

그래야 아이가 계속할 수 있고,뒤쪽에끊김 신호를 처리합니다. 보류 중인 신호에 대한 기본 작업은 프로세스를 종료하는 것이므로 신호를 포착하기 위한 신호 처리기를 제공해야 합니다. 따라서 sig_hup 함수의 printf가 pr_ids 함수의 printf 앞에 나타날 것으로 예상합니다.

'이후'는 '이전'을 의미하지 않나요?

존재하다SIGCONTSIGHUP고아 Linux 프로세스 그룹 의 순서위의 두 문장에서는 "이후" 대신 "이전"을 제안하는 것 같습니다. 아니면 제가 잘못 이해했을 수도 있습니다.

SIGHUP하위 프로세스가 실행을 재개할 때까지 메시지를 전달할 수 없습니다. 프로세스가 중지되면 SIGCONT및 를 제외한 모든 신호 전달이 중단됩니다 SIGKILL.

그래서 SIGHUP먼저 도착하지만까지 처리할 수 없습니다.SIGCONT는 프로세스 실행을 깨웁니다.

감사해요.

여러 신호가 프로세스에 도착하면 이러한 신호를 처리하는 프로세스 간의 순서는 무엇입니까?

답변1

아니요, 그 이후를 의미합니다. 관건은 '실행 재개'프로세스가 중지되는 곳".

신호처리가 먼저 이루어지고,그 다음에실행은 계속됩니다.

답변2

신호.c POSIX 1b 호환 신호 커널 코드

에서 검색하세요 SIGCONT. SIGCONT이 신호가 발견되면 코드가 보류 중인 신호를 찾는다는 것을 알 수 있습니다 .

관련 정보