重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (3件)

その方が簡単だからです。


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

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



――という事を質問してます? 外してるかも。

参考URL:http://www.google.com/search?q=%E3%83%87%E3%83%B …
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!