2

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以降でこの問題を再現できます

4

1 に答える 1

2

問題は解決された。

1) 私の appName プロパティには大文字が含まれていましたが、system_daemon の新しいバージョンでは問題が発生します。

2) pcntl をインストールする前に、pear と system_daemon をインストールしました。ソースからは、これが問題を引き起こす可能性はないように見えましたが、安全のために両方を再インストールしました.

于 2012-08-10T16:31:30.467 に答える