pear の「system_daemon」用に作成されたスクリプトは、新しいプロセスを形成するために分岐することを拒否します。これは古いサーバーではうまく機能しますが、新しいサーバーにはありません。デーモン スクリプトはシェルで正常に実行され、それらを強制終了するまで実行されます。一時的な回避策として、デタッチされた tmux シェルでデーモンを実行していますが、これは明らかに長期的な解決策ではありません。
フォークを妨げる既知の問題はありますか?
私はPHP 5を持っています
PHP 5.3.10-1ubuntu3.2 with Suhosin-Patch (cli) (built: Jun 13 2012 17:19:58)
ここにリストされているpcntlは、iniをロードしました
/etc/php5/cli/conf.d/pcntl.ini,
そして、ここでphp -i出力のさらに下に
pcntl
pcntl support => enabled
とナシ
PEAR Version: 1.9.4
と Pear の system_daemon
pear/System_Daemon 1.0.0 1.0.0 Turn PHP scripts into Linux daemons
ここで何がうまくいかないのですか?
残念ながらソースを投稿することはできませんが、すべての (ドキュメントの例を含む) system_daemon スクリプトは fork を拒否していると言えます。
編集 -- 追加情報
cweiske が提案したように、pcntl の例を試してみたところ、正しく動作しました
また、system_daemon をアンインストールし、pear のインストールを aptitude で消去し、再起動し、pear を再インストールし、system_daemon を再インストールしました。これも効果がありませんでした。
他のUbuntuボックス11.04以降でこの問題を再現できます