0

我需要: 1. 在日志文件中捕获进程的输出,但是 2. 将其分离,因为该程序可能需要数小时(或数天)。

显然,如果你使用 QProcess.startDetached(command),你会丢失你的 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 似乎没有帮助。(不知道为什么)。

4

1 回答 1

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模块。

于 2012-05-24T15:46:27.633 回答