Was ist der Unterschied zwischen SIGSTOP und SIGTSTP?


Antworten:


153

Beide Signale dienen dazu, einen Prozess auszusetzen, der schließlich wieder aufgenommen wird SIGCONT. Die Hauptunterschiede zwischen ihnen sind:

  • SIGSTOPist ein Signal , programmatisch (zB: gesendet kill -STOP pid) , während SIGTSTP(für sig nal - t erminal Stopp ) kann auch durch die gesendet werden ttyFahrer von einem Benutzer auf einer Tastatur tippen, in der Regel Control- Z.

  • SIGSTOPKann nicht ignoriert werden. SIGTSTPkönnte sein.


10
Faktoid: Wenn Sie ein Linux-Programmierer sind, erhalten Sie SIGTSTP, wenn Sie mit Strg-Z einen in einer Shell ausgeführten Prozess unterbrechen, ohne ihn zu beenden. Dies führt normalerweise dazu, dass die Shell sie in eine angehaltene Jobliste einfügt.
simpleuser

@Archer Ich bin mir nicht sicher, ob ich deinen Kommentar verstehe. Meinen Sie damit, dass Sie glauben, dass Control-Zes nicht auslöst, SIGTSTPoder denken Sie, dass dies nicht der Fall sein sollte?
Jlliagre

@jlliagre Ich habe eine genauere Umfrage durchgeführt, und es stellte sich heraus, dass Sie Recht haben. Ich habe den vorherigen Kommentar gelöscht.
Archer

@Archer Ok, ich vermute, Sie waren durch die Terminologie der Handbuchseite verwirrt. terminal stopbedeutet TSTP.
Jlliagre

@jlliagre Ich möchte, aber das System lässt es nicht zu, es heißt, ich kann die Abwertung nur abbrechen, wenn die Antwort bearbeitet wird ...
Archer

39

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

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

6
Unter Solaris 10 werden die Signale in der Header-Datei definiert/usr/include/sys/iso/signal_iso.h
Kent Pawar

2
In FreeBSD 11 ist es um/usr/include/sys/signal.h
Greg Schmit

1

SIGSTOP kann vom Zielprozess nicht ignoriert werden.

Ein gutes Beispiel dafür ist der Video-Player mpv, den er ignorieren kann, SIGTSTPaber nicht SIGSTOP.

Sie können mit einem laufenden Video testen:

kill -SIGTSTP $(pidof mpv) und kill -SIGSTOP $(pidof mpv)

Natürlich kill -SIGCONT $(pidof mpv), um das Spiel fortzusetzen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.