쉘이 프로그램을 실행 중인 경우 Ctrl+C를 누를 때 쉘도 SIGINT 신호를 수신합니까?

쉘이 프로그램을 실행 중인 경우 Ctrl+C를 누를 때 쉘도 SIGINT 신호를 수신합니까?

Ctrl+C나는 당신이 누를 때 SIGINT그것을 읽었습니다포그라운드 프로세스 그룹.

이제 여기에 허용되는 답변이 있습니다.질문설명하다:

기본적으로 신호는 모든 포그라운드 프로세스(예: 셸 및 프로그램)에서 수신됩니다.

cat내부에서 실행 bash해 보니 PGIDfor bashcat가 다르기 때문에 같은 프로세스 그룹에 속하지 않습니다.

그럼 를 누르면 신호 Ctrl+Ccat들어오게 되는데 SIGINT(그래서 제가 인용한 답변은 틀렸습니다) 맞나요?

답변1

이 질문은 bash 스크립트에 관한 것입니다. bash를 대화식으로 실행하고 있습니다. 이는 프로세스 그룹마다 다릅니다. 이것이 바로 프로세스 그룹이 발명된 이유입니다. 프로세스 그룹의 목적은 대화형으로 시작된 작업과 관련된 모든 프로세스를 캡처하는 것입니다. 따라서 대화형 셸은 별도의 프로세스 그룹에서 각 작업을 시작하는 반면, 스크립트를 실행하는 셸은 새 프로세스 그룹을 생성하지 않습니다.

관련 정보