Какая разница между 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) чтобы возобновить игру.