Linuxでフォークやスレッド化を行わずに、2つの別々のプロセス間でソケットを共有するメカニズムはPerlにありますか?
私はノーと思いますが、この答えはそれが可能であると私に信じさせます:https ://stackoverflow.com/a/1139425/1170839
あるプロセスでリスニングソケットを作成し、別のプロセスがそれを受け入れ/読み取り/書き込みできるようにしたい。
Linuxでフォークやスレッド化を行わずに、2つの別々のプロセス間でソケットを共有するメカニズムはPerlにありますか?
私はノーと思いますが、この答えはそれが可能であると私に信じさせます:https ://stackoverflow.com/a/1139425/1170839
あるプロセスでリスニングソケットを作成し、別のプロセスがそれを受け入れ/読み取り/書き込みできるようにしたい。
あなたが投稿したリンクが示すように、多くの UNIXy システムでは、ファイル記述子がローカル ドメイン ソケットを介して渡される場合があります。たとえば、特権プロセスは fd を開いて準備し、非特権プロセスに送信して使用することができます。
Socket::MsgHdrは perl 用にこの機能を公開し、ファイル記述子の受け渡しの例を含んでいます。
行く方法は、POEを使用することです。POE は perl でのマルチスレッド化を驚くほど簡単にし、まさにこのために設計されています。POE は、イベント ドリブン マルチスレッド アプリケーション用の CPAN フレームワークです。確かに、Perl でこれを行う最も簡単で最良の方法は POE です。すべてが以前に行われ、十分にテストされている場合、これを再発明する理由はありません。
見る:
http://poe.perl.org/?Evolution_of_a_POE_Serverおよび http://poe.perl.org/?POE_Cookbook/TCP_Servers