Какая разница между SIGSTOP и SIGTSTP?
Что это. Просто интересно узнать о различии между SIGSTOP и SIGTSTP.
Ответы
Ответ 1
Оба сигнала предназначены для приостановки процесса, который в конечном итоге будет возобновлен с помощью SIGCONT
. Основными отличиями между ними являются:
-
SIGSTOP
является сигнал, посланный программным (например: kill -STOP pid
), тогда как SIGTSTP
(для сиг нал - т erminal остановка), также могут быть отправлены через tty
драйвера с помощью пользовательского ввода на клавиатуре, как правило, Control - Z,
-
SIGSTOP
нельзя игнорировать. SIGTSTP
может быть.
Ответ 2
/usr/include/x86_64-linux-gnu/bits/signum.h
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
Ответ 3
SIGSTOP не может быть проигнорирован целевым процессом.
Хорошим примером этого является видеоплеер mpv
, он может игнорировать SIGTSTP
но не SIGSTOP
.
Вы можете проверить видео, запустив:
kill -SIGTSTP $(pidof mpv)
и kill -SIGSTOP $(pidof mpv)
Конечно, kill -SIGCONT $(pidof mpv)
чтобы возобновить игру.