2012-03-01 23 views
1

データベースに含まれるキューに基づいて電子メールを送信するPHPスクリプトがあります。シェルでバックグラウンドでPHPスクリプトを実行する - スクリプトはmac os xで実行されませんx

それはのような私のシェルから実行されたときにスクリプトが動作します。/folder/email.php -f

は/ usr/bin/php

しかし、私はバックグラウンドで実行するためにそれを実行したとき:

は/ usr/bin/php -f /folder/email.php>は/ dev/nullに&

それが完了したことがない、とプロセスがちょうどプロセスキューに座っている:

のClickOnceます。ps T

PID TT STAT TIMEコマンド

1246 S000 Ssの0:00.03ログイン-pf

1247 S000 S 0:00.03 -bash

1587 S000 T 0:00.05//folder/email.php -f/PHP USR/binに

1589 S000 R + 0:00.00のPS T

だから私の質問は、私は、バックグラウンドプロセスへとして、これを実行することができる方法であります実際に実行していますか? OSを設定する必要はありますか?コマンドを実行する方法を変更する必要がありますか?

答えて

1

「STAT」列の「T」は、停止したプロセスを示します。あなたのスクリプトはstdinからの入力を読み込もうとしていて、フォアグラウンド処理ではないため読み込みが許可されていないので停止していると思います。

実行中にスクリプトが実際に何かを読んでいるかどうかを確認する必要があります。

+0

この場合、require_once文またはdb readを標準と見なしますか? – dirknibleck

+0

端末からの読み取りはstdinからの読み取りです。実験として、/ dev/nullから入力をリダイレクトしようとするとどうなるかを確認してください。 – Perry

+0

どのようにその文を作成しますか?/usr/bin/php -f /folder/email.php dirknibleck

関連する問題