That's it. Just wondering about the difference between SIGSTOP and SIGTSTP.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Both signals are designed to suspend a process which will be eventually resumed with SIGCONT
. The main differences between them are:
SIGSTOP
is a signal sent programmatically (eg:kill -STOP pid
) whileSIGTSTP
is typically sent by a user typing on a keyboard, usually Control-Z.SIGSTOP
cannot be ignored.SIGTSTP
might be.
回答2:
/usr/include/x86_64-linux-gnu/bits/signum.h
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
回答3:
SIGSTOP can't be ignored by the targetted process.
A good example of that is the video player mpv
, it can ignore SIGTSTP
but not SIGSTOP
.
You can test with a video running :
kill -SIGTSTP $(pidof mpv)
and
kill -SIGSTOP $(pidof mpv)
Of course kill -SIGCONT $(pidof mpv)
to resume playing.