ログファイル監視スクリプトlogmonをsupervisordで管理
ログファイル監視スクリプトlogmonの重要度がかなり増してきたので、supervisordで起動、停止を管理するように変更。
supervisordの導入は過去のエントリーを参考にしてください
logmonの起動スクリプトは下記なので、起動方法を確認。
#!/bin/sh
# chkconfig: 345 13 13# description: Log Monitor# processname: logmon
LOGMON_CONF=/etc/logmon/logmon.confLOGMON_BIN=/etc/logmon/logmon.pl
logmon_opts="-f $LOGMON_CONF"
check_start() { $0 status > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "Success." exit 0 fi echo "Failed." exit 1}
case "$1" in start) $0 status > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "logmon is alredy running." exit 1 fi echo -n $"Starting logmon: " $LOGMON_BIN $logmon_opts >/dev/null 2>&1 & sleep 1 check_start ;; stop) echo -n "Stopping logmon: " pkill -TERM -of $LOGMON_BIN echo Done. ;; restart) $0 stop sleep 1 $0 start ;; switch) pkill -HUP -of $LOGMON_BIN ;; check) $LOGMON_BIN -c $logmon_opts ;; status) pid=`pgrep -of $LOGMON_BIN` if [ -n "$pid" ]; then echo "logmon (pid $pid) is running..." exit 0 fi echo "logmon is stopped" exit 3 ;; *) echo "Usage: $0 {start|stop|restart|switch|status|check}" exit 1esac下記のようなで形で、logmonを起動しているので
/etc/logmon/logmon.pl -f /etc/logmon/logmon.conf >/dev/null 2>&1 & |
/etc/supervisord.d/logmon.ini を下記のような感じで用意
[program:logmon]command=/etc/logmon/logmon.pl -f /etc/logmon/logmon.confstdout_logfile_maxbytes=1MBstderr_logfile_maxbytes=1MBstdout_logfile=/var/log/%(program_name)s.logstderr_logfile=/var/log/%(program_name)s.logautorestart=truesupervisordで管理するの、chkconfigをoffに
sudo /etc/rc.d/init.d/logmon stop sudo chkconfig logmon off |
新しく監視デーモンとして、logmon.iniを追加したので、supervisordに設定を再読み込みさせる。
sudo supervisorctl reread |
logmonをsupervisord管理に追加して起動させる
sudo supervisorctl add logmon |
logmonが起動しているか確認
sudo supervisorctl status |
logmonをkillしてsupervisordが再起動させるかを確認して問題なければOK牧場

