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 に答える