#!/bin/sh # #chkconfig: 2345 99 30 #description: myScript #processname: myScript # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 1 # Process name ( For display ) NAME=myScript # Daemon name, where is the actual executable DAEMON=/myScript/APP/myScript # Daemon user DAEMONUSER=scriptUser # pid file for the daemon PIDFILE=/var/run/myScript/myScript.pid # log file for deamon LOGFILE=/var/log/myScript.log # Define variables PS_CMD="ps -e -o pid,args" proc_list=`$PS_CMD | grep $NAME | grep -v grep | grep -v mqReader | grep -v sh | grep -v vi | grep -v su | grep -v tail` procs=`echo $proc_list | awk '{print $1}'` start () { # see if it exists if [ -n "$procs" ]; then echo "$NAME is already running..." elif [ -e "$PIDFILE" ]; then echo "$NAME is already running..." else # start daemon while [ 1 ] do touch $PIDFILE daemon +9 $DAEMON >> $LOGFILE echo "#--------------------------------------------------#" >> $LOGFILE echo "# $NAME quit due to error, re-running in 15 seconds #" >> $LOGFILE echo "#--------------------------------------------------#" >> $LOGFILE sleep 15 killproc $NAME rm -rf $PIDFILE done fi } stop () { # see if it exists if [ -n "$procs" ]; then # stop daemon killproc $NAME rm -rf $PIDFILE echo -e "\n`date +%a' '%b' '%d' '%H:%M:%S' '%Y` - $NAME has been stopped...\n" >> $LOGFILE elif [ -e "$PIDFILE" ]; then rm -rf $PIDFILE echo -e "\n`date +%a' '%b' '%d' '%H:%M:%S' '%Y` - $NAME pid file deleted...\n" >> $LOGFILE killproc $NAME else killproc $NAME echo "$NAME is not running..." fi } case "$1" in start) start & ;; stop) stop ;; status) status $NAME RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|status}" exit 1 ;; esac exit 0