Hello, The Popen call does not return if the underlying OS call runs longish, as the example below shows. Although, if the underlying OS call is merely "sleep N" it will return even after quite a long time.
wikiu...@dvprwiki1:~> python --version Python 2.6.4 wikiu...@dvprwiki1:~> time /opt/confluence-cli-1.5.0/confluence.sh --action getPageList --space TIS --user cli --password cli | head -1 132 pages in list real 0m1.245s user 0m1.482s sys 0m0.153s wikiu...@dvprwiki1:~> time /opt/confluence-cli-1.5.0/confluence.sh --action getPageList --space Oncall --user cli --password cli | head -1 19645 pages in list real 0m14.425s user 0m9.866s sys 0m1.110s wikiu...@dvprwiki1:~> cat $HOME/scripts/subprocess_test.py #!/usr/bin/env python import os, sys from subprocess import Popen, PIPE def execute(command_list=["sleep", "1"]): process = Popen(command_list, shell=False, stdout=PIPE) (pid, exit_code) = os.waitpid(process.pid, 0) if process.stdout != None: print process.stdout.read() if process.stderr != None: print process.stderr.read() return exit_code if __name__ == "__main__": if len(sys.argv) > 1: execute(sys.argv[1].split()) else: execute() wikiu...@dvprwiki1:~> time $HOME/scripts/subprocess_test.py "/opt/confluence-cli-1.5.0/confluence.sh --action getPageList --space TIS --user cli --password cli" | head -1 132 pages in list real 0m1.233s user 0m1.437s sys 0m0.169s 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.) -- http://mail.python.org/mailman/listinfo/python-list