1

私はexecを使用して次のようなバックグラウンドスクリプトを実行しています:

$command = "/usr/local/bin/php public_html/r/index.php tools $action process $params > /dev/null &";
exec($command);

問題は、それが機能していないということです。

ヒント :

  • ターミナルから(SSH経由で)まったく同じコマンドを実行しているときは、正常に機能しています。
  • コマンドが有効になっています(問題なく任意のexecコマンドを実行できます)。

何か案は?

4

1 に答える 1

5

バックグラウンドジョブは、シェルとは異なる「現在の」ディレクトリを持つ傾向があります。通常は、ジョブが実行されているアカウントのホームディレクトリです。public_htmlがにない限り、/home/whoever実際にはスクリプトを実行していません。絶対パスを試してください:

$command = "/usr/local/bin/php /path/to/public_html/r/index.php etc..."
                               ^^^^^^^^^

代わりは。

于 2012-08-01T15:17:55.480 に答える