web-dev-qa-db-ja.com

SIGSTOPとSIGTSTPの違いは何ですか?

それでおしまい。 SIGSTOPとSIGTSTPの違いについて疑問に思っているだけです。

89
user1419715

両方のシグナルは、最終的にSIGCONTで再開されるプロセスを中断するように設計されています。それらの主な違いは次のとおりです。

  • SIGSTOPはプログラムで送信されるシグナルです(例:kill -STOP pid)while SIGTSTP(for signal-- t erminal stop)は、ユーザーがキーボードで入力することにより、ttyドライバーを介して送信することもできます。通常は Control-Z

  • SIGSTOPは無視できません。 SIGTSTPになります。

132
jlliagre

/usr/include/x86_64-linux-gnu/bits/signum.h

#define SIGSTOP     19  /* Stop, unblockable (POSIX).  */
#define SIGTSTP     20  /* Keyboard stop (POSIX).  */
33
Royce Chao

ターゲットプロセスはSIGSTOPを無視できません。

その良い例がビデオプレーヤーmpvです。SIGTSTPは無視できますが、SIGSTOPは無視できません。

ビデオを実行してテストできます:

kill -SIGTSTP $(pidof mpv)およびkill -SIGSTOP $(pidof mpv)

もちろん、kill -SIGCONT $(pidof mpv)は再生を再開します。

0
bob dylan