人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

[linux]daemontoolsの動作について

現在サーバで動作させるサービスをdaemontoolsにて管理しています
そこでひとつ気になった点があるのですが

svc -d /hoge/qmail-send

のようにqmailを停止しようとしたタイミングで
メールの送信処理中だった場合は
メール送信処理完了後にqmailは停止されるのでしょうか

もしくはこのような処理中のタイミングで
上記コマンドを用いてqmailを停止してはいけないのでしょうか

よろしくお願いします

●質問者: jayz
●カテゴリ:インターネット ウェブ制作
✍キーワード:daemontools hoge qmail svc [linux]
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

qmailを停止しようとしたタイミングで

メールの送信処理中だった場合は

メール送信処理完了後にqmailは停止されるのでしょうか

順番に処理を追っていこう。

The svc program

svc -d コマンドでは管理しているプロセスに TERM シグナルを送る。

この場合 TERM シグナルを受け取るのは qmail-send プロセスということになる。

ARC FAQ System : qmail reference "qmail-send (8)"

qmail-send が、TERM シグナルを受け取った場合、現在の配信の試行が終了するまで、もし可能なら1分以上、待った後に、きれいに終了します。

ということなので送信中であろうが何だろうが問題なし。


もちろんこれは管理対象のプロセス毎に異なるのでそれぞれのプログラムで確認は必要。

とはいっても、通常メジャーなアプリは TERM シグナルを受け取ると(そのプログラムにとって)安全な状態になってから終了するので、

たいていの場合問題ないが。

◎質問者からの返答

わかりやすい説明ありがとうございます


2 ● angemaries
●35ポイント

終了時に生きている子プロセスやスレッドがあれば、それらの終了を待ってから終了するように実装するのが普通です。

ですが、無限には待てないので、タイムアウトする場合もあります。

1通のメールの送信自身は、「途中まで送信して」という状態にはなりませんので、

送ったか、送らないかのどちらかになります。

送らなかったメールは、次回起動時に送り始めるだけです。

◎質問者からの返答

ご回答ありがとうございます

qmailの場合は問題ないようですね

ただ今回例としてQMAILを出しましたが、実際に動いているのはQMAILではない独自に作ったMTAなのでその辺が実装されているか確認する必要がありますね

おそらくそのような実装はされていないとみていますが・・・

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ