Qual é a diferença entre SIGSTOP e SIGTSTP?

103

Apenas me perguntando sobre a diferença entre os sinais SIGSTOP e SIGTSTP.

user1419715
fonte

Respostas:

153

Ambos os sinais são projetados para suspender um processo que será eventualmente retomado SIGCONT. As principais diferenças entre eles são:

  • SIGSTOPé um sinal enviado por meio de programação (por exemplo: kill -STOP pid) enquanto SIGTSTP(por sig nal - t erminal paragem ) pode também ser enviado através do ttycontrolador por um usuário digitando no teclado, geralmente Control- Z.

  • SIGSTOPnão pode ser ignorado. SIGTSTPpode ser.

Jlliagre
fonte
10
Factoid: Se você é um programador de Linux, SIGTSTP é o que você obtém quando usa Ctrl-Z para interromper um processo em execução em um shell sem matá-lo. Isso geralmente faz com que o shell o coloque em uma lista de trabalhos suspensos.
simpleuser
@Archer Não tenho certeza de entender seu comentário. Quer dizer que você acredita Control-Zque não é acionado SIGTSTPou acha que não deveria?
jlliagre
@jlliagre Fiz uma pesquisa mais detalhada e descobri que você está certo. Excluí o comentário anterior.
Archer
@Archer Ok, acho que você ficou confuso com a terminologia da página do manual. terminal stopsignifica TSTP.
jlliagre
@jlliagre Eu quero, mas o sistema não permite, ele diz que eu só posso cancelar o downvote se a resposta for editada ...
Archer
39

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

#define SIGSTOP     19  /* Stop, unblockable (POSIX).  */
#define SIGTSTP     20  /* Keyboard stop (POSIX).  */
Royce Chao
fonte
6
No Solaris 10, os sinais são definidos no arquivo de cabeçalho/usr/include/sys/iso/signal_iso.h
Kent Pawar
2
No FreeBSD 11 está em/usr/include/sys/signal.h
Greg Schmit
1

SIGSTOP não pode ser ignorado pelo processo direcionado.

Um bom exemplo disso é o reprodutor de vídeo mpv, ele pode ignorar, SIGTSTPmas não pode SIGSTOP.

Você pode testar com um vídeo em execução:

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

Claro, kill -SIGCONT $(pidof mpv)para retomar o jogo.

bob dylan
fonte