• ベストアンサー

なぜメールサーバは子プロセス(デーモン)?

一般的にメールサーバはデーモン(子プロセス)としてバックグラウンドで稼動していますよね? ふと思ったのですが、なぜ子プロセスでなければならないのですか? メールサーバを親プロセスをデーモンとして稼動させるのはマズイですか? いま、メールサーバみたいなものを(デーモンとして)作ろうとしていたので、ちょっと疑問に思ってしまいました…

質問者が選んだベストアンサー

  • ベストアンサー
  • moritan2
  • ベストアンサー率25% (168/670)
回答No.2

その方が簡単だからです。 メールサーバはいつでも接続される可能性があり、一つの処理に時間がかかって次のメールの処理ができなかったなんていうことは許されません。 こういう場合、一つのプロセスで複数のメールを処理するのはできないことはありませんが、複雑です。そんなことをするより、接続があったらそのソケットハンドルを処理するだけのプログラムをforkしたほうが単純です。 forkされた子プロセスは渡された接続だけを処理し、ちゃんと送信ができるまで待たされても、親のプログラムはまた新しい接続を処理できます。

その他の回答 (2)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.3

親プロセスがデーモンになっているという事は、その祖父プロセス(例えばシェルだったり、/etc/rcスクリプト)は、プロセス終了待ちになってしまい、制御が戻ってきません。 ――という事を質問してます? 外してるかも。

参考URL:
http://www.google.com/search?q=%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3+%E5%88%B6%E5%BE%A1%E7%AB%AF%E6%9C%AB+fork
noname#39970
noname#39970
回答No.1

実行ユーザ(パーミッション)辺りで もう一度調べ直してみた方が良い

関連するQ&A