중단된 프로세스에 SIGTERM 보내기

중단된 프로세스에 SIGTERM 보내기

C로 작성된 프로세스 2개를 호출하겠습니다.'부모'그리고'어린이'. 부모가 자식을 생성하고, 자식이 일부 코드를 실행한 다음 을 던지는 루프에 들어갑니다 SIGSTOP. 특정 조건이 충족되면 부모는 자녀를 보내야 하고 SIGTERM, 그렇지 않으면 부모는 자녀를 보내야 합니다 SIGCONT.

일시정지 중에 어떻게 SIGTERM보내고 원하는 결과를 얻을 수 있나요? SIGCONT그냥 보내면 보내기 전에 SIGTERM아이가 도착할까봐 걱정되고 , 연달아 보내는 두 개의 신호가 서로 간섭할 수도 있다는 생각도 듭니다.SIGSTOPSIGTERM

답변1

SIGKILL일시 중지된 상태의 프로세스가 있는 경우 계속하기 전에는 어떤 신호(세마포어 제외)에도 작동하지 않습니다. 보류 중인 신호는 프로세스의 대기열에 추가됩니다.

따라서 귀하의 경우에 따라 다음을 보내야 합니다.

  1. SIGTERM그런 다음SIGCONT
  2. SIGCONT

물론 이는 다음과 같이 단순화될 수 있습니다.

if (condition) { send SIGTERM }
send SIGCONT

관련 정보