Просто интересно узнать о разнице между сигналами SIGSTOP и SIGTSTP.
В чем разница между SIGSTOP и SIGTSTP?
Ответы (3)
Оба сигнала предназначены для приостановки процесса, который в конечном итоге будет возобновлен с помощью SIGCONT
. Основные различия между ними:
SIGSTOP
— это сигнал, отправляемый программно (например:kill -STOP pid
), аSIGTSTP
(для signal — tterminal stop) также может быть отправлен через драйверtty
пользователем, набирающим на клавиатуре, обычно Control-Z.SIGSTOP
нельзя игнорировать.SIGTSTP
может быть.
person
jlliagre
schedule
09.08.2012
Factoid: Если вы программист Linux, SIGTSTP — это то, что вы получаете, когда используете Ctrl-Z, чтобы прервать процесс, работающий в оболочке, не убивая его. Обычно это приводит к тому, что оболочка помещает его в список приостановленных заданий.
- person simpleuser; 19.06.2015
@Archer Я не уверен, что понял твой комментарий. Вы имеете в виду, что считаете, что
Control-Z
не вызывает SIGTSTP
, или вы думаете, что не должно?
- person jlliagre; 14.01.2019
@jlliagre Я провел более тщательный опрос, и оказалось, что вы правы. Я удалил предыдущий комментарий.
- person Archer; 14.01.2019
@Archer Хорошо, я предполагаю, что вас смутила терминология страницы руководства.
terminal stop
означает TSTP.
- person jlliagre; 14.01.2019
@jlliagre Я хочу, но система этого не разрешает, она говорит, что я могу отменить отрицательный голос только в том случае, если ответ будет отредактирован…
- person Archer; 14.01.2019
/usr/include/x86_64-linux-gnu/bits/signum.h
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
person
Royce Chao
schedule
22.04.2013
В Solaris 10 сигналы определяются в заголовочном файле
/usr/include/sys/iso/signal_iso.h
- person Kent Pawar; 13.08.2013
В FreeBSD 11 это
/usr/include/sys/signal.h
.
- person Greg Schmit; 09.01.2018
SIGSTOP не может быть проигнорирован целевым процессом.
Хорошим примером этого является видеоплеер mpv
, он может игнорировать SIGTSTP
, но не SIGSTOP
.
Вы можете протестировать запуск видео:
kill -SIGTSTP $(pidof mpv)
и kill -SIGSTOP $(pidof mpv)
Конечно kill -SIGCONT $(pidof mpv)
возобновить игру.
person
bob dylan
schedule
30.09.2018