Me pregunto acerca de la diferencia entre las señales SIGSTOP y SIGTSTP.
Me pregunto acerca de la diferencia entre las señales SIGSTOP y SIGTSTP.
Respuestas:
Ambas señales están diseñadas para suspender un proceso que eventualmente se reanudará con SIGCONT
. Las principales diferencias entre ellos son:
SIGSTOP
es una señal enviada mediante programación (por ejemplo: kill -STOP pid
), mientras SIGTSTP
(para sig nal - t ERMINAL parada ) puede también ser enviado a través del tty
conductor por un usuario escribir sobre un teclado, por lo general Control- Z.
SIGSTOP
No puede ser ignorado. SIGTSTP
puede ser.
Control-Z
que no se activa SIGTSTP
o cree que no debería?
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 no puede ser ignorado por el proceso objetivo.
Un buen ejemplo de eso es el reproductor de video mpv
, puede ignorarSIGTSTP
pero no SIGSTOP
.
Puede probar con un video en ejecución:
kill -SIGTSTP $(pidof mpv)
y
kill -SIGSTOP $(pidof mpv)
Por supuesto kill -SIGCONT $(pidof mpv)
para seguir jugando.