2012-05-24 27 views
0

我需要: 1.在日誌文件中捕獲進程的輸出,但是 2.由於程序可能需要數小時(或幾天)纔會分離。無法在python中使用QProcess獲取文件輸出

很顯然,如果你使用QProcess.startDetached(命令),你失去了你StandardOutput,使

launchApp = QtCore.QProcess()   
launchApp.setStandardOutputFile("logfile") 
launchSim.startDetached("my_command") 

不起作用。

launchSim.start("my_command") 

能工作嗎,但我買不起合作。 也

launchSim.startDetached("my_command", " > logfile") 

不起作用。它認爲 「>日誌文件」爲非法選項「my_command」

這是在Linux上


的問題是,「my_command」死亡調用程序關閉時。 nohup似乎沒有幫助。 (不知道爲什麼)。

回答

1

如何使用os.system()從標準庫:

import os 
os.system("nohup my_command > logfile &") 

可能更好一點,更安全的是:

import os 
os.system("nohup /full/path/to/my_command >& logfile &") 

注意兩個輸出流的重定向和完整路徑命令。您也可能有興趣查看os.popen()subprocess模塊。