0

次のコマンドでsshからphpスクリプトを実行しています

./script.php &

このスクリプトにはループがあり、約 800,000 回ループすると想定されています (実行に数日かかります)。ただし、現在、プロセスへの数千のループを停止しています。私のエラー ハンドラーはスクリプトからのエラーをキャッチしていませんが、コンソールは読み取ります。

Write failed: Broken pipe

このメッセージが何を意味するのか、これがどのような問題を示しているのか、どのように追跡すればよいのか、誰かに光を当てることはできますか?

アップデート:

スクリプトの機能を要約すると、(スクリプトと同じサーバーでホストされている) データベース内のテーブルから 800,000 行が選択されます。行ごとに、サードパーティのサイトへの残りの呼び出しを行い、そのデータを同じデータベース (スクリプトと同じサーバーでホストされている) 内の別のテーブルに書き込みます。

4

1 に答える 1

0

Broken pipe次の 2 つの原因があります。

  1. のような関数を使用しているか、スクリプトの出力がパイプラインにリダイレクトされているため、プログラムはパイプに書き込みを行っており、popen()パイプから読み取っているプログラムは終了します (または、他の理由でパイプの終わりを閉じます)。

  2. プログラムはネットワーク接続に書き込みを行っていますが、その接続は相手側によって閉じられています。

于 2013-06-04T07:32:15.490 に答える