2009-05-28 22 views
0

私はテストのために何度も他のスクリプトを繰り返し実行するスクリプトを開発しています。WindowsのPython環境変数?

現在の動作は、起動するPythonスクリプトが1つあります。そのスクリプトはプログラムを呼び出し、他のスクリプトを読み込みます。 60秒後にプログラムを強制終了し、次のスクリプトでプログラムを再起動します。

一部のスクリプトでは60秒が長すぎるため、スクリプトが終了したときにFLAG変数を設定できるかどうか(メインスクリプト以外)を設定することができますFLAGを読んでプロセスを終了させますか?

ご協力いただきありがとうございます。私の文章は混乱する可能性がありますので、完全に理解できない場合はお知らせください。

+1

サブプロセスとして起動し、それらが終了するのを待つためにsubprocess.Popenのwait()メソッドを使用しないのはなぜですか? –

+0

これは、プロセスが終了しないため動作しません。 私のスクリプトは、この (擬似コード) ./Program.exe /home/user/Desktop/Scr​​ipt1.py だからScript1.pyは、最終的には終了しないが、PROGRAM.EXEは本当に終了したことがない...だからサブプロセス.Popen wait()はうまくいかないと思います。 – hahuang65

+0

私はこれをまっすぐにしましょう。 mainscript.pyはprogram.exeを実行し、program.exeはscript1.pyを起動します。 program.exeは終了しませんが、script1.pyはやります。 script1.pyが終了したときに検出する方法を探していますか? script1.pyは毎回正常に終了するのか、時にはエラーが出るのですか? – Paul

答えて

1

script1.pyが終了すると、小さなファイル(flag.txt)を書き込むためにatexitを使用できます。 mainscript.pyは定期的にflag.txtの存在をチェックし、見つかったらprogram.exeを終了して終了します。

編集: 永続的な環境変数はthisを使用して設定しましたが、Pythonベースのインストールスクリプトでのみ使用します。通常、私はかなりレジストリをつぶすことに恥ずかしがり屋です。 (これはWindows用です)btw

+0

環境変数を設定する方法が見つかりましたが、永続的ではないようです... Script1.pyが終了すると、変数は削除されます。したがって、他のすべてが失敗した場合、私はこれを行うことになるかもしれません... – hahuang65

+0

環境変数を永続的に設定する場合は、実際にレジストリに入る必要があります。しかし、私は本当にIPCの一種のフラグを設定するためにこのアプローチをお勧めしません。 –

0

これは、ソケットの場合、特にasyncoreの完璧な使用のようです。

+0

ありがとう、もう仕事ではないが、私は明日これを試してみる:) – hahuang65

0

このように環境変数を使用することはできません。あなたが設定アプリケーションが完了した後も永続的ではないことを発見したので、