#!/bin/sh ### BEGIN INIT INFO # Provides: zoneminder # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Should-Start: mysql # Should-Stop: mysql # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Control ZoneMinder as a Service # Description: ZoneMinder CCTV recording and surveillance system ### END INIT INFO # chkconfig: 2345 20 20 # Source function library. . /lib/lsb/init-functions prog=ZoneMinder ZM_PATH_BIN="/usr/bin" RUNDIR="/var/run/zm" TMPDIR="/tmp/zm" command="$ZM_PATH_BIN/zmpkg.pl" start() { echo -n "Starting $prog: " # ATB - wait for mysqld to start. Continue if it takes too long. count=0 while [ ! -e /var/run/mysqld/mysqld.sock ] && [ $count -lt 60 ] do sleep 1 count=$((count+1)) done export TZ=:/etc/localtime mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR" mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR" $command start RETVAL=$? [ $RETVAL = 0 ] && echo success [ $RETVAL != 0 ] && echo failure echo [ $RETVAL = 0 ] && touch /var/lock/zm return $RETVAL } stop() { echo -n "Stopping $prog: " # # Why is this status check being done? # as $command stop returns 1 if zoneminder # is stopped, which will result in # this returning 1, which will stuff # dpkg when it tries to stop zoneminder before # uninstalling . . . # result=`$command status` if [ ! "$result" = "running" ]; then echo "Zoneminder already stopped" echo RETVAL=0 else $command stop RETVAL=$? [ $RETVAL = 0 ] && echo success [ $RETVAL != 0 ] && echo failure echo [ $RETVAL = 0 ] && rm -f /var/lock/zm fi } status() { result=`$command status` if [ "$result" = "running" ]; then echo "ZoneMinder is running" RETVAL=0 else echo "ZoneMinder is stopped" RETVAL=1 fi } case "$1" in 'start') start ;; 'stop') stop ;; 'restart' | 'force-reload') stop start ;; 'status') status ;; *) echo "Usage: $0 { start | stop | restart | status }" RETVAL=1 ;; esac exit $RETVAL