Ctrl+C
나는 당신이 누를 때 SIGINT
그것을 읽었습니다포그라운드 프로세스 그룹.
이제 여기에 허용되는 답변이 있습니다.질문설명하다:
기본적으로 신호는 모든 포그라운드 프로세스(예: 셸 및 프로그램)에서 수신됩니다.
cat
내부에서 실행 bash
해 보니 PGID
for bash
와 cat
가 다르기 때문에 같은 프로세스 그룹에 속하지 않습니다.
그럼 를 누르면 신호 Ctrl+C
만 cat
들어오게 되는데 SIGINT
(그래서 제가 인용한 답변은 틀렸습니다) 맞나요?
답변1
이 질문은 bash 스크립트에 관한 것입니다. bash를 대화식으로 실행하고 있습니다. 이는 프로세스 그룹마다 다릅니다. 이것이 바로 프로세스 그룹이 발명된 이유입니다. 프로세스 그룹의 목적은 대화형으로 시작된 작업과 관련된 모든 프로세스를 캡처하는 것입니다. 따라서 대화형 셸은 별도의 프로세스 그룹에서 각 작업을 시작하는 반면, 스크립트를 실행하는 셸은 새 프로세스 그룹을 생성하지 않습니다.