2011-11-10 5 views
1

質問、システムデーモンの梨

私はデーモン内で別のプロセスを壊すことができますか?

私はpearシステムデーモンライブラリを使用してデーモンを破棄し、そのデーモン内のプロセスを破棄したいと考えています。

デーモンは を実行し、新しいプロセスが破棄され、別途計算が行われます 他のプロセスはデーモンとは別に実行されます。一方、デーモンはコードを実行し続け、さらに多くのプロセスを実行します

どうすればこのことができますか?

+0

私がSystem_Daemonを知ることができるのは、単一のバックグラウンドプロセスだけです。フォークする内部機能を持っていますが、Net_Serverのようなマルチフォークシステムではありません。ですから、代わりに 'pcntl_fork'を手動で使用したいかもしれません。 – mario

答えて

0

System_Daemonは、スタートアップ/シャットダウン処理、一般的な信号処理とロギングのみを処理します。

PHPコードから新しいプロセスを生成する場合は、PHPのpcntl functionsを使用する必要があります。

0

Spurn?私はあなたがのスポーンを意味すると仮定します。しかし、(私の知る限り)それらはすべて、

迅速にPear System Daemonのドキュメントを取捨選択(現在のプロセスを置き換えるpcntl_execを除く)こののみハンドルをブロックしている -

PHPは、プロセスを作成するための機能がたくさんありますプロセスをデーモン化するプロセス。サーバープロセスを実行したり、複数のクライアントを処理したりすることはありません。これを実装する方法は、新しいプロセスの起動方法に大きな影響を与えます。

現在のプロセスのインスタンスをフォークして、着信接続を処理する方法があります。example on the socket_accept()のdocページがあります。その後、あなたが開始するプロセスがブロッキングコールを介しているかどうかは関係ありません。

しかし、多くのsimlperソリューションは、デーモン/フォーク/ソケットを気にしてばかりはstdio

C.

0

を使用して、[X]にinetd経由で起動しないだろう、私は前に同じ問題を抱えていました。私がした解決策は、1つのsystem_daemonがexecを介して別のsystem_daemonを呼び出すことでした。同じコードの新しいインスタンスを実行するには、appPidLocationオプションを変更する必要があります。

オプションリストを見るにはsystem_daemonのcodeを見てください。

関連する問題