2016-04-22 14 views
0

を終えた後もメモリ内に滞在している私は、クロンCakePHPの3シェルスクリプトは、ジョブが

bin/cake hello >/dev/null 2>&1 

マイHelloShell.phpさんmain()で実行CakePHPのシェルスクリプトが似ている必要がありHelloModelは別のモデルを使用し、情報を収集してデータベースに保存します。

突然、私は、すべてが完了して閉じていなくても、プロセスがメモリに残っていることに気付きました。

私はコンソールでps auxを実行し、しばらくして

p1033  607670 0.0 0.0 106100 1132 ?  Ss 23:42 0:00 /bin/sh -c /home/xxxx/public_html/bin/cake hello do_stuff >/dev/null 2>&1 
p1033  607676 0.0 0.0 295656 17400 ?  S 23:42 0:00 php /home/xxxx/public_html/bin/cake.php hello do_stuff 

を参照するcronによるコマンド開始の別のコピーを、それはまたkills'emすべてのサーバーの所有者になるまでメモリ内に滞在しています。

私はそれがプロセスリストに登場し、10秒後に消えたのを見て、この

for ($i = 0; $i < 10; $i++) sleep(1); 

のような単純なPHPスクリプトを実行しようとしました。

私はcakephpで何が間違っているのですか? ジョブの実行後にプロセスがメモリに滞留しないようにするにはどうすればよいですか?

+0

まあ、モデルをロードせずに無駄なループを使用すると、10秒後にプロセスが消えてしまうことが分かりました。私はDBに何か悪いことをしていますか?モデルIのユーザORMメソッドといくつかのクエリのConnectionManager。その後、disconnect()メソッドを呼び出します。 –

+0

同じジョブをコンソールで手動で実行すると、ジョブが終了してもメモリに残りません。 –

答えて

0

これは、長いSQLスクリプトです。デッドロックなど。

関連する問題