Python asyncio.subprocess():如何查看它是否仍在运行

Fra*_*fer 1 subprocess python-3.x python-asyncio

对于由p以下创建的类对象asyncio.subprocess.Process

p = await asyncio.create_subprocess_exec(...)
Run Code Online (Sandbox Code Playgroud)

如何以非阻塞方式确定系统调用是否仍在运行?

use*_*342 5

由于 asyncioProcess没有poll()方法,因此您可以组合Process.wait()asyncio.wait_for(),使用一个微小的超时来wait()检查进程是否完成,returncode如果完成则设置属性。

async def is_running(proc):
    with contextlib.suppress(asyncio.TimeoutError):
        await asyncio.wait_for(proc.wait(), 1e-6)
    return proc.returncode is None
Run Code Online (Sandbox Code Playgroud)