On Tue, Sep 21, 2010 at 3:06 PM, Jason Friedman <jsf80...@gmail.com> wrote: > Hello, > > The Popen call does not return if the underlying OS call runs longish, > as the example below shows. <snip> > wikiu...@dvprwiki1:~> time $HOME/scripts/subprocess_test.py > "/opt/confluence-cli-1.5.0/confluence.sh --action getPageList --space > Oncall --user cli --password cli" | head -1 > Traceback (most recent call last): > File "$HOME/scripts/subprocess_test.py", line 18, in <module> > execute(sys.argv[1].split()) > File "$HOME/scripts/subprocess_test.py", line 9, in execute > (pid, exit_code) = os.waitpid(process.pid, 0) > KeyboardInterrupt > > real 1m25.306s > user 0m0.021s > sys 0m0.035s > > (Note I killed this last command with CNTL-C.)
As your Traceback clearly indicates, the Popen() call has already completed; it's *the os.waitpid() call* that's blocking, but that's entirely to be expected given its defined behavior. If you don't want to wait around for the process to die, then don't call waitpid() on it in the first place! Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list