私はRPCについて読んでいますこれページ。
これはクライアント/サーバー モデルであり、サーバーはクライアントからのクエリに応答できると理解しています。私が聞きたいのは、クライアント側が RPC を使用してサーバー側コンポーネントを呼び出そうとしたときにサーバー側コンポーネントが実行されず、何らかの理由でサーバー側が実行されてリクエストが処理される可能性があるかどうかです。
答え1
これを実現するシステムを構築するには、少なくとも 2 つの方法があります。
- カーネルは RPC サービスを実行します。これは NFS サーバーにほとんど当てはまります。Linux カーネルは NFS サービスを実行します。ユーザー プロセスはほとんど表示されません。その理由の一部はパフォーマンス (NFS サービスはパフォーマンスが重要です) であり、カーネルには他のどこにも存在しないファイルとファイル システムに関する情報があるためです。
- 「インターネットスーパーサーバー「実行中の」は、TCPおよび/またはUDPポートのセットをリッスンします。ポートのセットのメンバーの1つにデータが到着すると、「スーパーサーバー」は実際のサーバープロセスを開始し、ソケットをstdinおよびstdoutとして渡します。オリジナルは
inetd
人気がなくなり、多数の代替品xinetd
、systemd
などを含む。