是否有替代Python 3中的os.kill函数可以给我一个返回码?我想验证一个进程及其中的孩子在重新启动之前确实会被杀死。
我可能会在之后放置一个kill -0循环或者做一个subprocess.call(kill -9 pid)如果必须的话,但我很好奇是否有更优雅的解决方案。
答案 0 :(得分:2)
这个问题基于对kill -9 PID
行为(或kill
与其他任何信号)的错误理解 - 即使-9
无法被进程的信号处理程序覆盖,例如,如果目标处于阻塞系统调用中,它仍然会被延迟。
因此:shell中的kill -9 "$pid"
不会告诉您何时收到信号。返回码0只表示信号已发送,与Python os.kill()
返回的信号相同,无异常。
由sigaction
和os.kill()
shell命令调用的基础kill
调用无法返回结果信息。因此,该信息无法以任何语言提供 。
答案 1 :(得分:0)
os.kill()向进程发送信号。返回代码仍将发送到父进程。