プロセスはアンパサンドなしでは動作しますが、アンパサンドでは動作しません。

プロセスはアンパサンドなしでは動作しますが、アンパサンドでは動作しません。

私はデーモンとして実行するための小さなスクリプトを書いていて、Unixでコマンドを実行すると、すべてが問題ないようです。

php script.php

すべてがうまくいくようです。スクリプトを終了して次のコマンドを使用すると、de スクリプトはバックグラウンドで実行されません。

php script.php &

私は何が間違っていましたか?サーバーの問題かもしれませんし、スクリプトの問題かもしれません。

答え1

PHPが出力を書いていないように見えても、少なくともヘッダを書く準備ができています。この動作はphp.iniオプションを使用して抑制できます-q

php -q script.php >/dev/null 2>&1 &

あなたが行くべき場所に連れて行かなければなりません。

PHPが実際に何も出力しているかどうかを確認するには、次のようにします。

php -q script.php >/tmp/script.log 2>&1 &

次に、スクリプトが実行された後も/tmp/script.logがまだゼロバイトであることを確認してください。

答え2

この PHP script.php > /dev/null 2>&1 & をお試しください。

関連情報