質問、システムデーモンの梨
私はデーモン内で別のプロセスを壊すことができますか?
私はpearシステムデーモンライブラリを使用してデーモンを破棄し、そのデーモン内のプロセスを破棄したいと考えています。
デーモンは を実行し、新しいプロセスが破棄され、別途計算が行われます 他のプロセスはデーモンとは別に実行されます。一方、デーモンはコードを実行し続け、さらに多くのプロセスを実行します
どうすればこのことができますか?
質問、システムデーモンの梨
私はデーモン内で別のプロセスを壊すことができますか?
私はpearシステムデーモンライブラリを使用してデーモンを破棄し、そのデーモン内のプロセスを破棄したいと考えています。
デーモンは を実行し、新しいプロセスが破棄され、別途計算が行われます 他のプロセスはデーモンとは別に実行されます。一方、デーモンはコードを実行し続け、さらに多くのプロセスを実行します
どうすればこのことができますか?
System_Daemon
は、スタートアップ/シャットダウン処理、一般的な信号処理とロギングのみを処理します。
PHPコードから新しいプロセスを生成する場合は、PHPのpcntl functionsを使用する必要があります。
Spurn?私はあなたがのスポーンを意味すると仮定します。しかし、(私の知る限り)それらはすべて、
迅速にPear System Daemonのドキュメントを取捨選択(現在のプロセスを置き換えるpcntl_execを除く)こののみハンドルをブロックしている -
PHPは、プロセスを作成するための機能がたくさんありますプロセスをデーモン化するプロセス。サーバープロセスを実行したり、複数のクライアントを処理したりすることはありません。これを実装する方法は、新しいプロセスの起動方法に大きな影響を与えます。
現在のプロセスのインスタンスをフォークして、着信接続を処理する方法があります。example on the socket_accept()のdocページがあります。その後、あなたが開始するプロセスがブロッキングコールを介しているかどうかは関係ありません。
しかし、多くのsimlperソリューションは、デーモン/フォーク/ソケットを気にしてばかりはstdio
C.
を使用して、[X]にinetd経由で起動しないだろう、私は前に同じ問題を抱えていました。私がした解決策は、1つのsystem_daemonがexecを介して別のsystem_daemonを呼び出すことでした。同じコードの新しいインスタンスを実行するには、appPidLocationオプションを変更する必要があります。
オプションリストを見るにはsystem_daemonのcodeを見てください。
私がSystem_Daemonを知ることができるのは、単一のバックグラウンドプロセスだけです。フォークする内部機能を持っていますが、Net_Serverのようなマルチフォークシステムではありません。ですから、代わりに 'pcntl_fork'を手動で使用したいかもしれません。 – mario