很简单的代码:
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无法捕捉,而且无法忽略。