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:
SIGSTOPest 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 ttypilote par un utilisateur tapant sur un clavier, généralement Control- Z.
SIGSTOPNe peut pas être ignoré. SIGTSTPpourrait être.
Control-Zcela ne déclenche pas SIGTSTPou pensez-vous que cela ne devrait pas?
terminal stopsignifie 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 SIGTSTPmais 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.