CentOS の事、或はその QuickMLサービス

ちょっと CentOS release 5.3 (Final) に QuickMLサービスを動かすことになった。

CentOS雑感

サービス管理
「sudo /sbin/chkconfig --list」で、登録されてるサービスと夫々のランレベルごとの稼動設定。
「sudo /usr/sbin/ntsysv」で、サービスが現に稼動してるかどうかと on/off。
「 sudo /sbin/service <サービス名> <コマンド>」でサービス個別の start|stop等(<コマンド>)、/etc/ini.d/スクリプトを直接動かすのと同義のようだけど、サービス全部を統一的に動かせるのは良いかも。

例えば quickmlサービス用の /etc/ini.d/スクリプト quickml を用意しておくとして、中に

# chkconfig: 345 98 02
# description: quickml server is a very-easy-to-user mailing list server.

とか書いておくとこれら RedHat系のサービス管理に載せてくことができる。
「sudo /sbin/chkconfig --add quickml」にて。345 は稼動させるランレベル、まあこんなものでしょう、98 02 は rc#.d での起動順、かなり後ろの方にしている。

メールサービス

CentOSデフォルトのメールサービスは Sendmail、とはいえ PostfixExim も簡単に使えるようになってる。
Sendmail の設定がよく分からなかったので、Postfix に切り替える。「sudo /usr/sbin/system-switch-mail」で選択、system-switch-mail は sbin だけじゃなくて bin にもあるんだけど何なのかな。

QuickML

CentOS 5.3 で Ruby は「ruby 1.8.5 (2006-08-25) [i386-linux]」、irbその他もパッケージで。gemは RubyForge から(http://rubyforge.org/projects/rubygems/)、そして「sudo ruby setup.rb」。「gem --version」=> 1.3.4
とはいえ、QuickMLyumパッケージにも gemパッケージにもなってないので本家(QuickML.COM: ようこそ)から。
ダウンロード: quickml server: an easy-to-use mailing list system
そして

$ ./configure 
$ make 
$ sudo make install 
quickml

ものとしてこれくらいということでいいのかな

/usr/lib/ruby/site_ruby/1.8/quickml 
/usr/lib/ruby/site_ruby/1.8/quickml.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/config.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/core.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/gettext.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/logger.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/mail.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/server.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/sweeper.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/utils.rb 
/usr/lib/ruby/site_ruby/1.8/quickml/version.rb 
/usr/local/bin/quickml-analog 
/usr/local/etc/quickmlrc.sample 
/usr/local/sbin/quickml 
/usr/local/sbin/quickml-ctl 
/usr/local/var/quickml 
サービス制御スクリプト

quickml の /etc/init.d/スクリプトとしては、quickml-ctl を使っても良いのだけど、ロックファイルを作らないとか、だから2重起動をチェックしないとか、ちょっと気になるところもあり、昔改造したのを見つけて来れたのでその辺で。上記 RedHat系サービス管理の記述も含め。status サブコマンド対応させてないの許して。

#! /bin/sh
# RedHat init.d script for Quic-ML
# 2003/12/24 HShimura (hs9587)
# $Id: quickml,v 1.8 2003/12/26 11:06:35 shimura Exp $
# $Name:  $
#
# Add chkcpmfig: line by HShimura 2006/8/21
# chkconfig: 345 98 02
# description: quickml server is a very-easy-to-user mailing list server.
#
# cp quickml-ctl and /var/lock/subsys/quickml, rm /var/run/quickml.pid

start() {
        echo -n "Starting QuickML services: "
        /usr/local/sbin/quickml
        touch /var/lock/subsys/quickml
        echo
}

stop() {
        echo -n "Stopping QuickML services: "
        kill `cat /var/run/quickml.pid`
        rm -f /var/run/quickml.pid
        rm -f /var/lock/subsys/quickml
        echo
}

already() {
        echo -n "QuickML is already running."
        echo
        exit 1
}

case "$1" in
  start)
        if [ -f /var/lock/subsys/quickml ]; then
                already
        else
                start
        fi
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        sleep 1
        start
        ;;
  *)
        echo "Usage: quickml {start|stop|restart}"
        exit 1
esac

exit 0

調整

メールサービスの詳細設定を書いてもしょうがないので概略だけ

  • Postfix
    • transport
    • main.cf
      • transportをイキにする
      • あと細かいのいろいろ、
      • ホストの設定とか reley、local_recipient_mapsは無しでとか、とか
  • QuickML
    • /usr/local/etc/quickmlrc においた
      • 「:port => 10025,」で受ける
      • 送るのは :smtp_port => 25,ポート、自機。SMTPホスト名注意
  • /etc/hosts
    • ローカルホスト 127.0.0.1 にて、上記出てくるホスト名の解決注意

なんかこれだけでは実際どうしたもんか全然分からないですね。
概ね http://yamashita.dyndns.org/blog/245/ こんな感じ