Просто цікаво про різницю між сигналами SIGSTOP та SIGTSTP.
Просто цікаво про різницю між сигналами SIGSTOP та SIGTSTP.
Відповіді:
Обидва сигнали призначені для призупинення процесу, який згодом буде відновлено SIGCONT
. Основні відмінності між ними:
SIGSTOP
це сигнал , що посилається програмно (наприклад , kill -STOP pid
) , а SIGTSTP
(для сиг кінцевої - т erminal зупинки ) також може бути посланий через tty
драйвер абонентські , набравши на клавіатурі, як правило , Control- Z.
SIGSTOP
не можна ігнорувати. SIGTSTP
може бути.
Control-Z
не спрацьовує, SIGTSTP
чи ти вважаєш, що не повинно?
terminal stop
означає 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 не може ігнорувати цільовий процес.
Хорошим прикладом цього є відеоплеєр mpv
, який він може ігнорувати, SIGTSTP
але ні SIGSTOP
.
Ви можете протестувати із запущеним відео:
kill -SIGTSTP $(pidof mpv)
і
kill -SIGSTOP $(pidof mpv)
Звичайно, kill -SIGCONT $(pidof mpv)
щоб відновити гру.