Python asyncio和subprocess_exec():获取已退出进程的siginfo

Python asyncio和subprocess_exec():获取已退出进程的siginfo,python,unix,asynchronous,signals,python-asyncio,Python,Unix,Asynchronous,Signals,Python Asyncio,因此,Pythonasyncio模块提供了一种很好的方法,可以使用subprocess\u exec与活动进程的输入/输出流进行异步交互。通常,这是通过设置继承自asyncio.SubprocessProtocol的子类来完成的,并为以下内容编写方法: def connection_made(self, transport): ... def pipe_data_received(self, fd, data): ... def process_exited(self): ...

因此,Python
asyncio
模块提供了一种很好的方法,可以使用
subprocess\u exec
与活动进程的输入/输出流进行异步交互。通常,这是通过设置继承自
asyncio.SubprocessProtocol
的子类来完成的,并为以下内容编写方法:

def connection_made(self, transport):
  ...

def pipe_data_received(self, fd, data):
  ...

def process_exited(self):
  ...
最后一个方法,
process\u exited
,在进程退出时被调用。在这里,您可以通过
transport
对象的
return\u code()
方法获取返回代码。但是,我希望能够获得有关异常退出的进程的更具体的信息。我希望能够通过UNIX/Linux/POSIX平台通过
waitid()/waitpid()
函数系列提供的
siginfo\u t
对象获得所提供的信息。
siginfo\u t
结构提供了许多关于进程退出原因的有用信息,例如它是否被信号(分段故障/中止等)终止以及其他信息

我尝试在
os
模块中使用Python包装器调用
process\u exited
回调中的
os.waitid(…)
,但它会引发
ChildProcessError
异常,可能是因为在调用
process\u exited
时,子进程已经退出,因此
os.waitpid()
不起作用


那么,使用
asyncio.SubprocessProtocol
工作流是否可以从退出的子进程中检索
siginfo\u t