それでおしまい。 SIGSTOPとSIGTSTPの違いについて疑問に思っているだけです。
両方のシグナルは、最終的にSIGCONT
で再開されるプロセスを中断するように設計されています。それらの主な違いは次のとおりです。
SIGSTOP
はプログラムで送信されるシグナルです(例:kill -STOP pid
)while SIGTSTP
(for signal-- t erminal stop)は、ユーザーがキーボードで入力することにより、tty
ドライバーを介して送信することもできます。通常は Control-Z。
SIGSTOP
は無視できません。 SIGTSTP
になります。
/usr/include/x86_64-linux-gnu/bits/signum.h
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
ターゲットプロセスはSIGSTOPを無視できません。
その良い例がビデオプレーヤーmpv
です。SIGTSTP
は無視できますが、SIGSTOP
は無視できません。
ビデオを実行してテストできます:
kill -SIGTSTP $(pidof mpv)
およびkill -SIGSTOP $(pidof mpv)
もちろん、kill -SIGCONT $(pidof mpv)
は再生を再開します。