0

問題:

サブプロセスの Popen を使用して新しいプロセスを開始する Python の監視プログラムがあります。これらのプロセスは、非常に長い時間 (数週間から数か月) 実行される可能性があります。Popen で stdout 変数にファイルハンドルを渡しているのですが、このファイルが巨大化しやすいのではないかと心配しています。そのログ ファイル内のデータを安全に移動または削除する方法はありますか?

重要な注意:これは Windows システム上にあるため、どのソリューションも Windows と互換性がある必要があります。

コードスニペット:

これが私がプロセスを作成する方法です。

try:
    logFile = file(self.logFileName, 'w')
    self.process = Popen(self.command, shell=False, stdout=logFile, stderr=STDOUT)
finally:
    logFile.close()
4

1 に答える 1

1

モニター・プログラムを修正して、モニター・プログラムが独自のログをローテーションするようにするか、ログ・プログラムからのデータを自分で仲介して、別のファイルにパッケージ化します。

これらはあなたが持っている2つのオプションです。実行後に別のプロセスのファイル記述子をいじることはできないため、そのファイル内の「データを移動または削除」することはできません。

=マイク

于 2009-05-08T16:46:19.580 に答える