我使用subprocess.Popen來調用控制檯應用程序。控制檯應用程序本身調用另一個子進程來執行下載操作。父進程一旦調用子進程就退出。Python Subprocess.Popen不能退出,它會被吊死
我能夠在命令提示符下手動運行腳本時獲取子進程的輸出。
但是在系統環境(post commit hook)中運行腳本時subprocess.Popen被掛起。子進程沒有退出。
p1 = subprocess.Popen([Application,arg1, arg2, arg3], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
Down_out = p1[0]
Down_Err = p1[1]
在此先感謝
這與'svn'有什麼關係? –
在提交發生在我的svn版本庫中時,從post commit hook調用的python腳本 – user1553605
'shell = True'和列表參數幾乎總是一個錯誤。或者刪除'shell = True'(並保留list參數)或將列表參數轉換爲字符串(shell命令,因爲它將出現在控制檯中)。 – jfs