#!/bin/sh # description: ZoneMinder is the top Linux video camera security and surveillance solution. ZoneMinder is intended for use in single or multi-camera video security applications.Copyright: Philip Coombes, Corey DeLasaux 2003-2008 # chkconfig: 2345 99 00 # processname: zmpkg.pl # This script is intended for use with legacy SysV init environments ONLY # For systemd environments, use the ZoneMinder systemd unit file instead # Source function library. . /etc/rc.d/init.d/functions prog=ZoneMinder ZM_CONFIG="@ZM_CONFIG@" pidfile="@ZM_RUNDIR@" LOCKFILE=/var/lock/subsys/zm loadconf() { if [ -f $ZM_CONFIG ]; then . $ZM_CONFIG else echo "ERROR: $ZM_CONFIG not found." return 1 fi } loadconf command="$ZM_PATH_BIN/zmpkg.pl" start() { # Commenting out as it is not needed. Leaving as a placeholder for future use. # zmupdate || return $? loadconf || return $? #Make sure the directory for our PID folder exists or create one. [ ! -d $pidfile ] \ && mkdir -m 774 $pidfile \ && chown $ZM_WEB_USER:$ZM_WEB_GROUP $pidfile #Make sure the folder for the socks file exists or create one GetPath="select Value from Config where Name='ZM_PATH_SOCKS'" dbHost=`echo $ZM_DB_HOST | cut -d: -f1` dbPort=`echo $ZM_DB_HOST | cut -d: -s -f2` if [ "$dbPort" = "" ] then ZM_PATH_SOCK=`echo $GetPath | mysql -B -h$ZM_DB_HOST -u$ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'` else ZM_PATH_SOCK=`echo $GetPath | mysql -B -h$dbHost -P$dbPort -u$ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'` fi [ ! -d $ZM_PATH_SOCK ] \ && mkdir -m 774 $ZM_PATH_SOCK \ && chown $ZM_WEB_USER:$ZM_WEB_GROUP $ZM_PATH_SOCK echo -n $"Starting $prog: " $command start RETVAL=$? [ $RETVAL = 0 ] && success || failure echo [ $RETVAL = 0 ] && touch $LOCKFILE return $RETVAL } stop() { loadconf echo -n $"Stopping $prog: " $command stop RETVAL=$? [ $RETVAL = 0 ] && success || failure echo [ $RETVAL = 0 ] && rm -f $LOCKFILE } zmstatus() { loadconf result=`$command status` if [ "$result" = "running" ]; then echo "ZoneMinder is running" $ZM_PATH_BIN/zmu -l RETVAL=0 else echo "ZoneMinder is stopped" RETVAL=1 fi } zmupdate() { if [ -x $ZM_PATH_BIN/zmupdate.pl ]; then $ZM_PATH_BIN/zmupdate.pl -f fi } case "$1" in 'start') start ;; 'stop') stop ;; 'restart') stop start ;; 'condrestart') loadconf result=`$ZM_PATH_BIN/zmdc.pl check` if [ "$result" = "running" ]; then $ZM_PATH_BIN/zmdc.pl shutdown > /dev/null rm -f $LOCKFILE start fi ;; 'status') status httpd status mysqld zmstatus ;; *) echo "Usage: $0 { start | stop | restart | condrestart | status }" RETVAL=1 ;; esac exit $RETVAL