IIS と SQL Server 2012 を実行する Windows 2012 Server を使用しています。
コマンド プロンプトから PHP スクリプトを実行しようとしています。スクリプトの実行には約 1 時間かかります。このようにコマンドラインから直接実行すると、 c:\PHP>php.exe "D:\Web\phpScript.php" 正常に実行されます。ここでも、実行に約 1 時間かかりますが、問題なく完了します。
問題は、別の PHP ページから実行する必要があることです。したがって、このコード - exec('start c:\php\php.exe "D:\Web\phpScript.php"'); PHP ではスクリプトを実行します。そのようにPHPから実行すると、約30分間は正常に動作しますが、何らかの理由でWindowsは約30分後にプロセスを強制終了します。
Windows でタスク マネージャーを監視してきましたが、コマンド プロンプトから直接実行した場合と、PHP を使用してコマンドを実行した場合とで、プロセスの実行方法に違いは見られません。どちらもバックグラウンド プロセスとして表示され、タスク マネージャーではまったく同じように見えますが、何らかの理由で、Windows はコマンド プロンプトから直接実行されたプロセスではなく、PHP から実行されたプロセスを強制終了しています。
PHP をリアルタイムで実行しようとしたこともありましたが、優先度が高ければ殺されなかったかもしれませんが、それは役に立ちませんでした。
私は本当にこれで立ち往生しています。
どんな助けでも素晴らしいでしょう。
ありがとう!