web-dev-qa-db-fra.com

Quelle est la différence entre SIGSTOP et SIGTSTP?

C'est tout. Je me demandais simplement quelle était la différence entre SIGSTOP et SIGTSTP. 

79
user1419715

Les deux signaux sont conçus pour suspendre un processus qui sera éventuellement 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 pilote tty par un utilisateur tapant au clavier, généralement Control-Z.

  • SIGSTOP ne peut pas être ignoré. SIGTSTP pourrait être.

128
jlliagre

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

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

SIGSTOP ne peut ê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) And kill -SIGSTOP $(pidof mpv)

Bien sûr, kill -SIGCONT $(pidof mpv) pour reprendre la lecture.

0
bob dylan