Просто интересно узнать о разнице между сигналами SIGSTOP и SIGTSTP.
Просто интересно узнать о разнице между сигналами SIGSTOP и SIGTSTP.
Ответы:
Оба сигнала предназначены для приостановки процесса, который в конечном итоге будет возобновлен SIGCONT. Основные различия между ними:
SIGSTOPэто сигнал , посылаемый программно (например , kill -STOP pid) , а SIGTSTP(для сиг конечной - т erminal остановки ) также может быть послан через ttyдрайвер абонентские , набрав на клавиатуре, как правило , Control- Z.
SIGSTOPнельзя игнорировать. SIGTSTPвозможно.
Control-Zэто не срабатывает, SIGTSTPили вы думаете, что не должно?
terminal stopозначает ТСТП.
/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)чтобы продолжить игру.