- PR -

sendmailサンドイッチ設定時の起動順番

1
投稿者投稿内容
紅色眼鏡
会議室デビュー日: 2004/12/23
投稿数: 4
お住まい・勤務地: 東京都⇔神奈川県⇔埼玉県
投稿日時: 2005-01-20 11:57
紅色眼鏡です。

先日のInterScanがらみの設定を終え、安堵したところなのですが、まだ終わっていない事に気が付きました。

InterScanの導入に伴い、sendmailをサンドイッチ設定にしたまでは良いのですが、このままではサーバー再起動時に前段のsendmailしか起動しないことになってしまいます。

そこで、各ランレベルに後段sendmailの起動&停止を行うように設定をしないとならないと思っています。

現在は/etc/rc.d/init.d/配下にあるsendmailスクリプトを別名コピーして編集しました。

1.start()で始まるブロック内にあるsendmail daemonの起動指定を編集
 →daemon /usr/sbin/sendmail $(・・・で始まるところに以下を追記
  $(echo -C/etc/sendmail.cf.xxx)

2.start()で始まるブロック内にあるファイル作成指定を編集
 →[ $RETVAL -eq 0 ] && touch・・・で始まるところを以下の様に編集
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail.xxx

3.stop()で始まるブロック内にあるファイル削除指定を編集
 →[ $RETVAL -eq 0 ] && rm・・・で始まるところを以下の様に編集
  [ $RETVAL -eq 0 ] && rm /var/lock/subsys/sendmail.xxx

4.stop()で始まるブロック内にある指定プロセスの終了を編集
 →killproc sendmail を以下の様に編集
  killproc sendmail.xxx

5.case文内の「condrestart」と「status」にある“sendmail”の文字列を"sendmail.xxx"に編集

6.後段が使用するcfファイル内の以下の項目も編集
# location of pid file
0 PidFile=/var/run/sendmail.xxx.pid

この状態で手動で起動&停止のテストすると「後段→前段」の順に起動&停止しないと正常に起動&停止が行えません。

sendmailの起動順としてはこの「後段→前段」で良い(これでないとダメ)のでしょうか?
また、これでOKという事であれば、各ランレベルにスクリプトを追加(前段より先)すれば良いと言う事でしょうか?

教えて下さい。
宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-01-20 23:18
こんばんわ.
引用:

紅色眼鏡さんの書き込み (2005-01-20 11:57) より:

InterScanの導入に伴い、sendmailをサンドイッチ設定にしたまでは良いのですが、このままではサーバー再起動時に前段のsendmailしか起動しないことになってしまいます。

そこで、各ランレベルに後段sendmailの起動&停止を行うように設定をしないとならないと思っています。


前スレで具体的に「何が原因だったのか?」や「それをどのように解決したのか?」
が書かれていないので,今ひとつ環境が良くわかりません.

通信の流れは
-(転送要求)-> メールサーバ(sendmail->ISMS->sendmail)<--> 外部
となると理解してよろしいでしょうか?
おそらく前後の sendmail では前者が 25/tcp で
後者がそれ以外の port を訊いていて,
更に ISMS が別の port を訊いているのだと思います.

でも,
-(転送要求)-> メールサーバ(ISMS->sendmail)<--> 外部へ配信
だけで良い気がしますが...
つまり ISMS が 25/tcp で受けて,
VirusScan したあとで local な sendmail に送ると.
勘違いしてたらゴメンナサイ.

話の流れから sendmail を2つ起動する形で話を進めます.
引用:

この状態で手動で起動&停止のテストすると「後段→前段」の順に起動&停止しないと正常に起動&停止が行えません。


乱暴かもしれませんが,sendmail 8.12.x なら
sm-client の機能を使ってしまえば簡単かもしれません.

8.11.x の場合,それぞれの sendmail.cf を作って起動すれば良いでしょう.
/etc/init.d/sendmail の中の sendmail を起動/停止する部分を
同じ script の中で複製して,一方を default の sendmail.cf で,
もう一方を別の名前の cf file で起動するようにすれば良いのではないかと.
もう1つの "sendmail.cf" を mailhub.cf とすると,
〜 sendmail -Cmailhub.cf 〜
とすると,sendmail は mailhub.cf の設定でもう1つ起動してくれます.
この場合,listen port が同じだったりすると当然うまく動きません.

ちなみに自分は BDS/OS のころに似たような構成で作ったことがありますが,
上記のような仕組みで OS 起動時に2つの sendmail を起動させました.
※過去にここの板で,それに言及した記憶があります.

ごく簡単ですが,ご参考までに.
1

スキルアップ/キャリアアップ(JOB@IT)