我需要: 1.捕获日志文件中进程的输出,但是 2.分开,因为该程序可能需要数小时,(或几天)。
显然,如果您使用QProcess.startDetached(命令),则会丢失StandardOutput,因此
launchApp = QtCore.QProcess()
launchApp.setStandardOutputFile("logfile")
launchSim.startDetached("my_command")
不起作用。
launchSim.start("my_command")
是否有效,但我负担不起。 还
launchSim.startDetached("my_command", " > logfile")
不起作用。它看到了 “> logfile”作为“my_command”的非法选项
这是在Linux上
问题是“my_command”在调用程序关闭时死掉。 nohup似乎没有帮助。 (不知道为什么)。
答案 0 :(得分: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
模块。