Python替代os.kill的返回代码?

时间:2015-07-04 02:13:30

标签: python linux

是否有替代Python 3中的os.kill函数可以给我一个返回码?我想验证一个进程及其中的孩子在重新启动之前确实会被杀死。

我可能会在之后放置一个kill -0循环或者做一个subprocess.call(kill -9 pid)如果必须的话,但我很好奇是否有更优雅的解决方案。

2 个答案:

答案 0 :(得分:2)

这个问题基于对kill -9 PID行为(或kill与其他任何信号)的错误理解 - 即使-9无法被进程的信号处理程序覆盖,例如,如果目标处于阻塞系统调用中,它仍然会被延迟。

因此:shell中的kill -9 "$pid"不会告诉您何时收到信号。返回码0只表示信号已发送,与Python os.kill()返回的信号相同,无异常。

sigactionos.kill() shell命令调用的基础kill调用无法返回结果信息。因此,该信息无法以任何语言提供

答案 1 :(得分:0)

os.kill()向进程发送信号。返回代码仍将发送到父进程。