I'm trying to simulate behavior of os.system
with Popen
and waitpid
on Ubuntu and I'm getting
OSError: [Errno 10] No child processes
here's how I'm using it
p = Popen(args, stdout = PIPE, stderr = PIPE)
stdout, stderr = p.communicate()
returncode = os.waitpid(p.pid, 0)[1]
I tried to get return code out of p.returncode
, but it is always None
, any ideas how to get the return code?
communicate
already waits on the child process to terminate, and collects the return code itself. Therefore, when you call os.waitpid
, you're calling it referencing a process ID that has already been removed from the OS tables. Therefore, you get the "No child process" error.
The return code you're looking for will be stored in the returncode field of of the process object after communicate
returns.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With