Quelle est la différence entre SIGSTOP et SIGTSTP?


Réponses:


153

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.


10
Factoid: Si vous êtes un programmeur Linux, SIGTSTP est ce que vous obtenez lorsque vous utilisez Ctrl-Z pour interrompre un processus en cours d'exécution dans un shell sans le tuer. Cela amène généralement le shell à le mettre sur une liste de travaux suspendus.
simpleuser

@Archer Je ne suis pas sûr de comprendre votre commentaire. Croyez-vous que Control-Zcela ne déclenche pas SIGTSTPou pensez-vous que cela ne devrait pas?
jlliagre

@jlliagre J'ai fait une enquête plus approfondie, et il s'est avéré que vous aviez raison. J'ai supprimé le commentaire précédent.
Archer

@Archer Ok, je suppose que vous étiez confus par la terminologie de la page de manuel. terminal stopsignifie TSTP.
jlliagre le

@jlliagre Je veux, mais le système ne le permettra pas, il dit que je ne peux annuler le vote négatif que si la réponse est modifiée…
Archer

39

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

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

6
Sur Solaris 10, les signaux sont définis dans le fichier d'en-tête/usr/include/sys/iso/signal_iso.h
Kent Pawar

2
Dans FreeBSD 11, c'est à/usr/include/sys/signal.h
Greg Schmit

1

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.