Ich wundere mich nur über den Unterschied zwischen SIGSTOP- und SIGTSTP-Signalen.
Ich wundere mich nur über den Unterschied zwischen SIGSTOP- und SIGTSTP-Signalen.
Antworten:
Beide Signale dienen dazu, einen Prozess auszusetzen, der schließlich wieder aufgenommen wird SIGCONT
. Die Hauptunterschiede zwischen ihnen sind:
SIGSTOP
ist ein Signal , programmatisch (zB: gesendet kill -STOP pid
) , während SIGTSTP
(für sig nal - t erminal Stopp ) kann auch durch die gesendet werden tty
Fahrer von einem Benutzer auf einer Tastatur tippen, in der Regel Control- Z.
SIGSTOP
Kann nicht ignoriert werden. SIGTSTP
könnte sein.
Control-Z
es nicht auslöst, SIGTSTP
oder denken Sie, dass dies nicht der Fall sein sollte?
terminal stop
bedeutet 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 kann vom Zielprozess nicht ignoriert werden.
Ein gutes Beispiel dafür ist der Video-Player mpv
, den er ignorieren kann, SIGTSTP
aber 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.