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


답변:


153

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

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

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


10
사실 : 리눅스 프로그래머라면 SIGTSTP는 Ctrl-Z를 사용하여 쉘에서 실행중인 프로세스를 죽이지 않고 중단 할 때 얻는 것입니다. 이로 인해 일반적으로 쉘이 일시 중단 된 작업 목록에 넣습니다.
simpleuser

@Archer 귀하의 의견을 이해하지 못합니다. 당신은 Control-Z방아쇠를 당하지 않는다고 믿거 SIGTSTP나 그렇게해서는 안된다고 생각합니까?
jlliagre

@jlliagre 나는 면밀한 설문 조사를했고 당신이 옳다는 것이 밝혀졌습니다. 이전 댓글을 삭제했습니다.
Archer

@Archer 좋아, 내 생각 엔 당신이 매뉴얼 페이지 용어로 혼란스러워했다고 생각합니다. terminal stopTSTP를 의미합니다.
jlliagre

내가 원하는,하지만 시스템이 그것을 허용하지 않습니다 @jlliagre 대답을 편집 할 경우, 그것은 ... 나는 단지 downvote을 취소 할 수 있습니다 말한다
아처

39

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

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

6
Solaris 10에서 신호는 헤더 파일에 정의되어 있습니다/usr/include/sys/iso/signal_iso.h
Kent Pawar 2013-08-13

2
FreeBSD 11에서는/usr/include/sys/signal.h
Greg Schmit

1

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

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

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

kill -SIGTSTP $(pidof mpv)kill -SIGSTOP $(pidof mpv)

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.