이미 SIGSTOP이 있는데 왜 SIGTSTP가 필요한가요?

이미 SIGSTOP이 있는데 왜 SIGTSTP가 필요한가요?

나는 항상 Ctrl-Z터미널(표준 모드)에서 빌드할 것이라고 생각했지만 SIGSTOP에 따르면 man 3 tcsetattr빌드됩니다 SIGTSTP. 그러나 두 경우 모두 SIGCONT중지된 프로세스를 재개하는 데 사용됩니다.

Ctrl-Z생성되지 않는 이유는 무엇입니까 SIGSTOP? SIGTSTP프로그램이 이를 다르게 처리하는 것이 유용한 상황이 있습니까 SIGSTOP?

답변1

KILL과 마찬가지로 STOP은 포착, 차단 또는 무시될 수 없습니다. 항상 수신 프로세스를 중지합니다. 반면 TSTP는 무시되거나 다르게 처리될 수 있습니다. 예를 들어 쉘과 Emacs는 CtrlZ스스로 처리하도록 TSTP 핸들러를 설정합니다. 셸에서의 이러한 동작은 누르기가 CtrlZ항상 안전하다는 것을 보장하고 프로세스가 중지되어 복구할 수 없는 터미널에 갇히지 않도록 합니다.

관련 정보