Je me demande juste la différence entre les signaux SIGSTOP et SIGTSTP.
Je me demande juste la différence entre les signaux SIGSTOP et SIGTSTP.
Réponses:
Les deux signaux sont conçus pour suspendre un processus qui sera finalement repris avec SIGCONT
. Les principales différences entre eux sont:
SIGSTOP
est un signal envoyé par programme (par exemple :)kill -STOP pid
tandis que SIGTSTP
(pour sig nal - t erminal stop ) peut également être envoyé via le tty
pilote par un utilisateur tapant sur un clavier, généralement Control- Z.
SIGSTOP
Ne peut pas être ignoré. SIGTSTP
pourrait être.
Control-Z
cela ne déclenche pas SIGTSTP
ou pensez-vous que cela ne devrait pas?
terminal stop
signifie 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 ne peut pas être ignoré par le processus ciblé.
Un bon exemple de cela est le lecteur vidéo mpv
, il peut ignorer SIGTSTP
mais pas SIGSTOP
.
Vous pouvez tester avec une vidéo en cours d'exécution:
kill -SIGTSTP $(pidof mpv)
et
kill -SIGSTOP $(pidof mpv)
Bien sûr kill -SIGCONT $(pidof mpv)
pour reprendre la lecture.