BLOGTIMES
2009/03/11

本当にすぐ使えるダミーsmtpサーバー

  linux  python  sh 
このエントリーをはてなブックマークに追加

以前に3行でできる、テスト用メールサーバという話がありましたが、実際にテストサーバに導入して使おうと思ったら、サーバをリブートしたときでも大丈夫かとか、いろいろと考えなければいけないことが多かったので、init.dに放り込むだけで使えるようなスクリプトを書いてみました。

実際のコード

スクリプトを/etc/init.dの下に放り込んで、chkconfig --add dummysmtpしておくと自動起動できます。ログはデフォルトでは/dev/nullに捨ててしまうようになっていますが、開発のデバッグに使うのであればどこかに書き出すようにしておけばいいと思います。

/etc/init.d/dummysmtp

#!/bin/bash # # chkconfig: 2345 80 30 # description: dummy smtp server LOGFILE=/dev/null BINDIP=127.0.0.1 BINDPORT=25 getpid(){ netstat -nlp | grep $BINDIP:$BINDPORT | awk '{print $7}' | sed 's/\/.*//' } start() { echo "import asyncore, smtpd smtpd.DebuggingServer(('$BINDIP', $BINDPORT), None) asyncore.loop()" | python -u > $LOGFILE 2>&1 & } stop() { PID=`getpid` /bin/kill -9 $PID until [ -z `getpid` ]; do :; done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) pid=`getpid` if [ -n "$pid" ]; then echo "dummysmtp (pid $pid) is running..." else echo "dummysmtp is not running" fi ;; *) echo "Usage: dummysmtp {start|stop|restart|status}" exit 1 esac exit $?

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2960
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン