Mi chiedevo solo la differenza tra i segnali SIGSTOP e SIGTSTP.
Mi chiedevo solo la differenza tra i segnali SIGSTOP e SIGTSTP.
Risposte:
Entrambi i segnali sono progettati per sospendere un processo che verrà eventualmente ripreso con SIGCONT
. Le principali differenze tra loro sono:
SIGSTOP
è un segnale inviato al livello di programmazione (es: kill -STOP pid
) mentre SIGTSTP
(per sig nal - t erminal fermata ) possono anche essere inviati attraverso il tty
guidatore da un utente digitando su una tastiera, di solito Control- Z.
SIGSTOP
non può essere ignorato. SIGTSTP
potrebbe essere.
Control-Z
non si inneschi SIGTSTP
o pensi che non dovrebbe?
terminal stop
significa 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 non può essere ignorato dal processo mirato.
Un buon esempio di ciò è il lettore video mpv
, può ignorarlo SIGTSTP
ma non lo è SIGSTOP
.
Puoi provare con un video in esecuzione:
kill -SIGTSTP $(pidof mpv)
e
kill -SIGSTOP $(pidof mpv)
Ovviamente kill -SIGCONT $(pidof mpv)
per riprendere a giocare.