#!/bin/bash # hibagent daemon # chkconfig: - 20 80 # description: EC2 instance hibernation agent # processname: hibagent DAEMON_PATH="/usr/bin" NAME=hibagent DESC="My daemon description" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/hibagent DAEMON=hibagent DAEMONOPTS="--config /etc/hibagent-config.cfg --pidfile $PIDFILE" if [[ $# -eq 0 ]]; then echo "Usage: $0 {start|stop|restart}" exit 1 else COMMAND="$1" fi case $COMMAND in start) printf "%-50s" "Starting $NAME..." if [[ -f $PIDFILE ]]; then PID=`cat $PIDFILE` if [[ "`ps axf | grep ${PID} | grep -v grep`" ]]; then echo "hibagent is already running" exit 0 fi fi cd $DAEMON_PATH $DAEMON $DAEMONOPTS > /dev/null 2>&1 if [ $? -eq 0 ]; then printf "%s\n" "Ok" else printf "%s\n" "Fail" exit 1 fi ;; status) printf "%-50s" "Checking $NAME..." if [[ -f $PIDFILE ]]; then PID=`cat $PIDFILE` if [[ -z "`ps axf | grep ${PID} | grep -v grep`" ]]; then printf "%s\n" "Process dead but pidfile exists" else echo "Running" fi else printf "%s\n" "Service not running" fi ;; stop) printf "%-50s" "Stopping $NAME" if [[ -f $PIDFILE ]]; then PID=`cat $PIDFILE` kill -HUP $PID printf "%s\n" "Ok" rm -f $PIDFILE exit 0 else printf "%s\n" "already stopped" exit 0 fi ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {status|start|stop|restart}" exit 1 esac