안녕하세요 csapp shell lab에서

myspin n은 n초간 sleep한담에 종료하는 프로그램인데


아래는 tshref를 돌린 결과입니다.


tsh> ./myspin 10
^CJob [1] (11748) terminated by signal 2 (10초 다지나기전에)
tsh> jobs

tsh>


질문1. 이런식으로 tshref는 결과가 나오던데, sigint_handler에서 그러면 foreground job을 찾은담에 kill(-pid, sig)를 통해  프로세스 그룹아이디가 |pid|(자식 프로세스의 pid의 절댓값)을 가지는 모든 프로세스에게 sig를 보내도록 짜주는게 맞나요?


질문2. 만약 그렇다면 최종적으로는 sigchld_handler에서 WIFSIGNALED(status) 이면 Job [1] (11748) terminated by signal 2과 같은 form으로 printf 해주는거죠?


질문3. sigstp_handler에서도 이와 비슷한 방법으로 kill을 통해서 stop 시그널만 보내주고, 최종적으로는 sigchld_handler에서 처리해주는거죠?


쉘렙 으려워요 ㅠㅠ