Apenas me perguntando sobre a diferença entre os sinais SIGSTOP e SIGTSTP.
Apenas me perguntando sobre a diferença entre os sinais SIGSTOP e SIGTSTP.
Respostas:
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 tty
controlador por um usuário digitando no teclado, geralmente Control- Z.
SIGSTOP
não pode ser ignorado. SIGTSTP
pode ser.
Control-Z
que não é acionado SIGTSTP
ou acha que não deveria?
terminal stop
significa TSTP.
/usr/include/x86_64-linux-gnu/bits/signum.h
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
/usr/include/sys/iso/signal_iso.h
/usr/include/sys/signal.h
SIGSTOP não pode ser ignorado pelo processo direcionado.
Um bom exemplo disso é o reprodutor de vídeo mpv
, ele pode ignorar, SIGTSTP
mas 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.