什么是SIGSTOP和SIGTSTP之间的区别?(What's the difference

2019-06-17 16:27发布

而已。 正纳闷SIGSTOP和SIGTSTP之间的差异。

Answer 1:

这两个信号被设计进程暂停其将与最终恢复SIGCONT 。 它们之间的主要区别是:

  • SIGSTOP是编程方式发送的信号(例如: kill -STOP pid ),而SIGTSTP (对于SIG NAL - ),也可以通过发送tty驱动器由用户在键盘上打字,通常是Control - z。

  • SIGSTOP不能被忽略。 SIGTSTP可能。



Answer 2:

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

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


Answer 3:

SIGSTOP不能被作为目标的过程中被忽略。

这方面的一个很好的例子是视频播放器mpv ,它也可以忽略SIGTSTP但不是SIGSTOP

您可以用视频运行测试:

kill -SIGTSTP $(pidof mpv)kill -SIGSTOP $(pidof mpv)

当然kill -SIGCONT $(pidof mpv)继续播放。



文章来源: What's the difference between SIGSTOP and SIGTSTP?