Python 处理 SIGKILL 时遇到的问题


很简单的代码:
signal.signal(signal.SIGKILL, signal_handler)

报出:
RuntimeError: (22, 'Invalid argument')

检查一下
>>> import errno
>>> errno.errorcode[22]
'EINVAL' //指定的信号sig无效

看看man page

[...]
The signals SIGKILL and SIGSTOP cannot be caught or ignored.
[...]

So... Python自己并不检查SIGKILL,而是直接把底层标准C的运行时错误返回。
SIGKILL无法捕捉,而且无法忽略。

相关内容