Просто цікаво про різницю між сигналами 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)щоб відновити гру.