#!/bin/bash # # chkconfig: - 22 78 # description: Starts and stops cmirrord # # For Red-Hat-based distributions such as Fedora, RHEL, CentOS. # ### BEGIN INIT INFO # Provides: cmirrord # Required-Start: $network $time $local_fs cman # Required-Stop: $network $time $local_fs cman # Short-Description: Starts and stops cmirrord # Description: Starts and stops the cluster mirror log daemon ### END INIT INFO . /etc/init.d/functions DAEMON=cmirrord LOCK_FILE="/var/lock/subsys/$DAEMON" start() { if ! pidof $DAEMON > /dev/null then gprintf "Starting %s: " "$DAEMON" daemon $DAEMON rtrn=$? echo fi return $rtrn } stop() { gprintf "Stopping %s:" "$DAEMON" killproc $DAEMON -TERM rtrn=$? echo return $rtrn } wait_for_finish() { count=0 while [ "$count" -le 10 -a -n "`pidof $DAEMON`" ] do sleep 1 count=$((count + 1)) done if [ `pidof $DAEMON` ] then return 1 else return 0 fi } cmirror_status() { status $DAEMON } rtrn=1 # See how we were called. case "$1" in start) start rtrn=$? [ $rtrn = 0 ] && touch $LOCK_FILE ;; stop) stop rtrn=$? [ $rtrn = 0 ] && rm -f $LOCK_FILE ;; restart) if stop then wait_for_finish start fi rtrn=$? ;; status) cmirror_status rtrn=$? if [ $rtrn -eq 0 ]; then gprintf "cmirror is running.\n" fi ;; *) gprintf "Usage: %s {start|stop|restart|status}\n" "$0" ;; esac exit $rtrn