+-LOCK_FILE="@DEFAULT_SYS_LOCK_DIR@/subsys/$DAEMON"
++LOCK_FILE="/var/lock/subsys/$DAEMON"
+
+ start()
+ {
+- rtrn=0
+- if ! pidof "$DAEMON" > /dev/null
+- then
+- echo -n "Starting $DAEMON: "
+- daemon "$usrsbindir/$DAEMON"
+- rtrn=$?
+- echo
+- fi
+-
+- return $rtrn
++ if [ -f $LOCK_FILE ]; then
++ msg_already_running "$DAEMON"
++ return
++ fi
++ msg_starting "$DAEMON"
++ daemon /sbin/$DAEMON </dev/null
++ RETVAL=$?
++ [ $RETVAL -eq 0 ] && touch "$LOCK_FILE"
+ }
+
+ stop()
+ {
+- echo -n "Stopping $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
++ if [ ! -f $LOCK_FILE ]; then
++ msg_not_running "$DAEMON"
++ return
+ fi
++ msg_stopping "$DAEMON"
++ killproc --pidfile "$PID_FILE" "$DAEMON"
++ rm -f "$LOCK_FILE"
+ }
+
+-cmirror_status()
+-{
+- status "$DAEMON"
+-}
+-
+-rtrn=1
+-
++RETVAL=0
+ # 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=$?
++ stop
++ start
+ ;;
+
+ status)
+- cmirror_status
+- rtrn=$?
+- if [ "$rtrn" -eq 0 ]; then
+- echo "cmirror is running."
+- fi
++ status $DAEMON
++ exit $?
+ ;;
+
+ *)
+- echo $"Usage: $0 {start|stop|restart|status}"
++ msg_usage "$0 {start|stop|restart|status}"
+ ;;
+ esac
+