1#!/bin/bash 2# 3# autotestd Start up the autotest scheduler daemon 4# 5# Copyright 2009 Red Hat, Inc. 6# 7# This software may be freely redistributed under the terms of the GNU 8# general public license. 9# 10# You should have received a copy of the GNU General Public License 11# along with this program; if not, write to the Free Software 12# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 13# 14# chkconfig: - 65 25 15# description: Autotest is a framework for fully automated testing. 16# processname: monitor_db.py 17# pidfile: /var/run/autotest/monitor_db_babysitter.pid 18# 19### BEGIN INIT INFO 20# Provides: autotest 21# Required-Start: $syslog $local_fs 22# Required-Stop: $syslog $local_fs 23# Default-Stop: 0 1 6 24# Short-Description: Start the autotest scheduler daemon 25# Description: Autotest is a framework for fully automated testing. 26### END INIT INFO 27 28# source function library 29. /etc/rc.d/init.d/functions 30 31# pull in sysconfig settings 32[ -f /etc/sysconfig/autotest ] && . /etc/sysconfig/autotest 33 34PROG="autotest" 35BECOME_USER=$PROG 36LOCKFILE=/var/lock/subsys/$PROG 37 38# Autotest paths 39AUTOTEST_DIR="/usr/local/$PROG" 40BABYSITTER="$AUTOTEST_DIR/scheduler/monitor_db_babysitter" 41SCHEDULER="$AUTOTEST_DIR/scheduler/monitor_db.py" 42 43# Scheduler options 44OPTIONS="--background" 45 46# Where to locate PID files 47PID_PATH="$AUTOTEST_DIR" # "/var/run/$PROG" 48BABYSITTER_PIDFILE="$PID_PATH/monitor_db_babysitter.pid" 49SCHEDULER_PIDFILE="$PID_PATH/monitor_db.pid" 50 51# Assume pass 52RETVAL=0 53 54start() 55{ 56 [ -f $BABYSITTER ] || exit 5 57 58 echo -n $"Starting $PROG: " 59 daemon --user $BECOME_USER --check $PROG $BABYSITTER $OPTIONS 60 RETVAL=$? 61 echo 62 [ "$RETVAL" = 0 ] && touch $LOCKFILE 63 return $RETVAL 64} 65 66stop() 67{ 68 echo -n $"Stopping $PROG: " 69 70 killproc $BABYSITTER 71 72 RETVAL=$? 73 echo 74 if [ "$RETVAL" = 0 ]; then 75 rm -f $LOCKFILE 76 rm -f $BABYSITTER_PIDFILE 77 rm -f $SCHEDULER_PIDFILE 78 fi 79 return $RETVAL 80} 81 82reload() 83{ 84 echo -n $"Reloading $PROG: " 85 killproc -p $BABYSITTER_PIDFILE $PROG -HUP 86 RETVAL=$? 87 echo 88 return $RETVAL 89} 90 91restart() { 92 stop 93 start 94} 95 96force_reload() { 97 restart 98} 99 100case "$1" in 101 start) 102 start 103 ;; 104 stop) 105 stop 106 ;; 107 restart) 108 restart 109 ;; 110 reload) 111 reload 112 ;; 113 condrestart|try-restart) 114 if [ -f $LOCKFILE ] ; then 115 if [ "$RETVAL" = 0 ] ; then 116 stop 117 # avoid race 118 sleep 3 119 start 120 else 121 RETVAL=6 122 fi 123 fi 124 ;; 125 status) 126 # status -p $PIDFILE $PROG 127 status $BABYSITTER 128 status $SCHEDULER 129 RETVAL=$? 130 ;; 131 *) 132 echo $"Usage: $0 {start|stop|restart|reload|condrestart|try-restart|status}" 133 RETVAL=2 134esac 135exit $RETVAL 136