私はプログラムを実行するためにいくつかのPHPスクリプトを書いており、STDOUTをキャプチャし、終了時にリターンコードをキャプチャします。これらのプログラムは即座に復帰するか、20分で終了する可能性があるため、終了するタイミングを監視する必要があります。バックグラウンドでプログラムを実行し、リターンコード(phpとwindows)をキャプチャします
プログラムをバックグラウンドで起動し、[外部ログファイルに]リターンコードを取得する方法が見つかりません。もし私が単にexecやproc_openを使うと、私のPHPスクリプトはブロックされます。
リターンコードを取得できない場合でも、プロセスがいつ終了したかを知る必要があります。私はexec("start my.exe");
を使用し、STDOUTをキャッチすることができます
を(私の代わりにSTDOUTにエラーコードを置くことができます)、私はリターンコードを取得していない(そしてそれが終わっていますときにも知らない)私が考えた
をすることができますバッチファイルで実行し、バッチファイルでリターンコードをキャッチしますが、私のコマンドラインには動的オプションがあります。
exec("start cmd \"echo hello\");
編集:しかし、私は、動的に、コマンドライン上のバッチコマンドのリストを作成する方法を発見していませんでした。誰かがアプローチを知っていれば、私はとても感謝しています。 Executing background processes from PHP on Windows:
cmd /C "echo hello"
は、クロスプラットフォーム、厳密に窓(XP-7)
リターンコードで何をお探しですか?それをウェブサイトに出力しますか? –
ええ、私はエラーと次の段階を決定するためにリターンコードを使用します。しかし、それはプロセスが終了したことを私に伝える役割も果たします。 –