我们可以创建一个无法被操作系统停止的程序吗?对于前者覆盖所有信号,如CTRL + C,CTRL + Z等。因此,每当操作系统向程序发送kill信号时,它将忽略它。
答案 0 :(得分:3)
您可以通过signal
系统调用忽略大多数信号,如下所示:
signal(SIGINT, SIG_IGN);
在这里,我们设置SIGINT
的信号处理程序(当你按CTRL + C时会引发它)为SIG_IGN
,这是一个特殊标志,表示该信号将被忽略。 / p>
但是,来自signal(2)
的手册页:
无法捕获或忽略信号
SIGKILL
和SIGSTOP
。
因此,虽然您可以忽略SIGINT
(即CTRL + C),但您无法忽略SIGSTOP
(CTRL + Z)或SIGKILL
。