fluentd-ui (td-agent-ui)が、あまりにも素敵なので、開発環境ではいつも起動していて欲しいと思っていました。 そこで、init スクリプト作りました。 テストは、 Cent OS 6 および 7環境、fluentd-ui-0.4.2、td-agent-2.2.1 にて行っています
導入方法
以下のスクリプト本体をコピーして、ファイル /etc/rc.d/init.d/td-agent-ui を作成します(viなどお好みで)
#!/bin/sh
### BEGIN INIT INFO
# Provides: td-agent-ui
# Required-Start: $local_fs $remote_fs $network
# Should-Start: $time
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: td-agent-ui
# Description: Service controller for td-agent-ui
### END INIT INFO
INSTALLED_DIR=/opt/td-agent
EXEC_SCRIPT=`/usr/sbin/td-agent-ui start`
LOG_DIR=/var/log/td-agent
PID_DIR=/var/run/td-agent
PID_FILE=`$PID_DIR`/td-agent-ui.pid
LOG_FILE=`$LOG_DIR`/td-agent-ui.log
test -d $LOG_DIR || mkdir $LOG_DIR
# Source function library.
. /etc/init.d/functions
RETVAL=0
case `$1` in
start)
if [ ! -f `$PID_FILE` ]; then
echo -n `Starting td-agent-ui`
nohup $EXEC_SCRIPT 0<&- &> $LOG_FILE &
success
else
echo -n `td-agent-ui is already running`
RETVAL=1
failure
fi
echo
;;
stop)
if [ -f `$PID_FILE` ]; then
echo -n `Stopping td-agent-ui`
test -f $PID_FILE && cat $PID_FILE | xargs kill -s SIGKILL && rm -f $PID_FILE
success
else
echo -n `td-agent-ui is not running`
RETVAL=1
failure
fi
echo
;;
restart)
$0 stop
$0 start
;;
reload)
$0 restart
;;
status)
status td-agent-ui
RETVAL=$?
;;
*)
echo `Usage: $0 {start|stop|status|restart|reload}`
exit 1
;;
esac
exit $RETVAL
参考情報
Amazon Linux 用 Kibana 4 Init スクリプト http://orih.io/2015/03/kibana-4-init-script-for-amazon-linux/ LSB(Linux Standard Base)を見ながらinitスクリプトを書いた http://qiita.com/ryo0301/items/0bc0f1db423b2da352fe プログラムをnohupでデーモン化する http://qiita.com/geta6/items/9472f6f192976670c93f