私はネットワークサーバープログラムのinetdのを使用する必要があるとき...がinetdすることがinetdかしませんか?

StackOverflow https://stackoverflow.com/questions/390847

  •  23-08-2019
  •  | 
  •  

質問

誰もがネットワークサーバとして動作するプログラムを管理するためにinetdを使用するか否かの選択を駆動う実世界の考慮事項の簡潔なセットを与えることはできますか?

(inetdのが使用されている場合、私はそれがプログラムでのネットワークコードの周りの要件を変更だと思うので、私はそれは間違いなく、関連するプログラミングやIT一般的ではないと思う)。

問題は、その後永遠に実行され、一定の重い負荷がかかるネットワーク・リスナーを起動するinetdによって管理制御プログラムを使用して、私が見てきた実装に基づいています。それは(、使用頻度の低いオンデマンド、軽量)教科書inetdの使用プロファイルとの良好なフィット感のように見えると、より一般的な問題に興味を持って私を得ませんでした。

役に立ちましたか?

解決

これはあなたのサービスのための使用パターンに依存します。あなたのデーモンの起動時間が低く、あなたはそれが頻繁に使用されることを期待する場合には、intedはぴったりかもしれません。これは、減少したり、他の追加のネットワークコードを記述する必要がなくなります。

あなたのデーモンが、よりヘビー級以上頻繁に使用される場合には、

、あなたはおそらく、スタンドアロンそれを書く方がいいでしょう。あなたは同じように簡単にそれで行くことにinit.dスクリプトといくつかのconf.d設定を書き込むことはできませんし、それが管理する管理者のために何も難しくなります。ほとんどのプログラミング言語は、これらの日は、多くの場合、ネットワークコードは、それさえも困難ではないかもしれないので、ソケットライブラリを使用して簡単にしています。

私はいくつかの管理者は、これらの日は、inetdを精通していることを私の経験で発見しました。ほとんどのデーモンはただ、自分のinitスクリプトを提供しています。実際に、私は私がすべてでinetdを経由何かを起動する単一のものを考えることはできません管理し、数百台のシステム。それは検討に値する何かます。

他のヒント

フックのinetdには、inetdが実質的にすべてのあなたのプログラムとのネットワーク通信が発生したかのを制御するためのシステム管理者を許可するよう動作の観点から管理するために、あなたのサービスが少し楽になります。しかし、それはあなたのプログラムにいくつかのコードを変更する必要がします。また、それはちょうどあなたのプログラムがそもそもデーモンとして実行することほど効率的ではないかもしれない。

編集:私は個人的には、スタンドアロンのデーモンとしてサーバプロセスを記述するために、常にOPTのinetdを使用し、決して

私は価値があるもう一つの要因は、inetdが要求を処理するプロセスは、平均的に消費どのくらいのメモリで使用することを決定する際に考慮すると思いますか?これはかなり高い場合、高負荷の下で、あなたは(inetdのフォーク以降)メモリ不足リスクがあります。同じサーバは、マルチスレッドで実装可能かを選択し、ポーリング方式は、おそらく高負荷/接続ごとに、より少ないメモリを可能性があります。

あなたはどのような代替戦略を検討している?

inetdが適切なときに実行レベルでのOSのブートサーバーの開始を確保する良い方法です。あなたには、いくつかの他の管理メカニズムを持っているあなたのサーバーを設計する場合でも、inetdはまだ非常に単純にすべてのコマンドをラップすることができます。それは結局唯一のシェルスクリプトです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top