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 ttyguidatore da un utente digitando su una tastiera, di solito Control- Z.
SIGSTOPnon può essere ignorato. SIGTSTPpotrebbe essere.
Control-Znon si inneschi SIGTSTPo pensi che non dovrebbe?
terminal stopsignifica 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 SIGTSTPma 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.