Python subprocess.Popen return 用信号杀死后的代码
Python subprocess.Popen return code after killing with signal
考虑以下代码:
SIGNAL = 123
proc = subprocess.Popen("longrunning")
proc.send_signal(SIGNAL)
现在我想要的是获取从带有exit()
的代码中返回的退出代码。
不幸的是,在 Python 中我只得到进程停止的信号编号:
>>> proc.returncode == -SIGNAL
True
试试这个:
proc = subprocess.call(["ls", "-alh"], stdout=subprocess.PIPE)
print proc
0
subprocess.call 最终调用了 Popen,但我发现它使用起来稍微简单一些。
两者是互斥的。如果您的进程因收到信号而终止,它将没有机会生成带有 exit()
.
的 return 代码
有关底层系统调用机制的说明,请参见man 2 waitpid
。
考虑以下代码:
SIGNAL = 123
proc = subprocess.Popen("longrunning")
proc.send_signal(SIGNAL)
现在我想要的是获取从带有exit()
的代码中返回的退出代码。
不幸的是,在 Python 中我只得到进程停止的信号编号:
>>> proc.returncode == -SIGNAL
True
试试这个:
proc = subprocess.call(["ls", "-alh"], stdout=subprocess.PIPE)
print proc
0
subprocess.call 最终调用了 Popen,但我发现它使用起来稍微简单一些。
两者是互斥的。如果您的进程因收到信号而终止,它将没有机会生成带有 exit()
.
有关底层系统调用机制的说明,请参见man 2 waitpid
。