[unix] SIGSTOP과 SIGTSTP의 차이점은 무엇입니까?

SIGSTOP과 SIGTSTP 신호의 차이점에 대해 궁금합니다.



답변

두 신호 모두에서 결국 재개 될 프로세스를 일시 중지하도록 설계되었습니다 SIGCONT. 그들 사이의 주요 차이점은 다음과 같습니다.

  • SIGSTOP신호가 송신 프로그램 (예 : kill -STOP pid) 동안 SIGTSTP(위한 SIG NAL – t erminal 정지 )를 통해 또한 전송 될 수있다 tty키보드에 대한 사용자 입력에 의해 드라이버, 통상 ControlZ.

  • SIGSTOP무시할 수 없습니다. SIGTSTP아마도.


답변

/usr/include/x86_64-linux-gnu/bits/signum.h

#define SIGSTOP     19  /* Stop, unblockable (POSIX).  */
#define SIGTSTP     20  /* Keyboard stop (POSIX).  */


답변

SIGSTOP은 대상 프로세스에서 무시할 수 없습니다.

그 좋은 예는 비디오 플레이어 입니다. mpv무시할 수는 SIGTSTP있지만 할 수는 없습니다 SIGSTOP.

다음을 실행하는 비디오로 테스트 할 수 있습니다.

kill -SIGTSTP $(pidof mpv)

kill -SIGSTOP $(pidof mpv)

물론 kill -SIGCONT $(pidof mpv)재생을 다시 시작합니다.


답변