From f89037a7471edd92e5f4ab8068920bb51c7abe45 Mon Sep 17 00:00:00 2001 From: Márcio Alexandre Silva Delgado Date: Tue, 25 Sep 2012 13:18:26 -0300 Subject: zoneminder: updating package --- pcr/zoneminder/zm.rc.d | 221 +++++++++++++------------------------------------ 1 file changed, 56 insertions(+), 165 deletions(-) (limited to 'pcr/zoneminder/zm.rc.d') diff --git a/pcr/zoneminder/zm.rc.d b/pcr/zoneminder/zm.rc.d index 99a1f1f22..c4cbf4d3f 100644 --- a/pcr/zoneminder/zm.rc.d +++ b/pcr/zoneminder/zm.rc.d @@ -1,172 +1,63 @@ #!/bin/bash -# Source function library. +daemon_name=zm + . /etc/rc.conf . /etc/rc.d/functions -prog=ZoneMinder -ZM_VERSION="1.25.0" -ZM_PATH_BIN="/srv/zoneminder/bin" -ZM_CONFIG="/etc/zm.conf" -command="$ZM_PATH_BIN/zmpkg.pl" - -loadconf() -{ - if [ -f $ZM_CONFIG ]; then - . $ZM_CONFIG - else - echo "ERROR: $ZM_CONFIG not found. -" - return 1 - fi -} - -# Check for old config and update if needed -checkcfg() -{ - # Check config - if [ "$ZM_DB_HOST" = "" -o "$ZM_DB_NAME" = "" -o "$ZM_DB_USER" = "" -o "$ZM_DB_PASS" = "" ]; then - echo "In $ZM_CONFIG there should not be null values. -" - return 1 - loadconf - fi -} - -checkdb() -{ - # Check database exisits and version - GetVer="select Value from Config where Name='ZM_DYN_DB_VERSION'" - OLD_VERSION=`echo $GetVer | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'` - if [ "$OLD_VERSION" = "" ]; then - GetVer="select Value from Config where Name='ZM_DYN_CURR_VERSION'" - OLD_VERSION=`echo $GetVer | mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME | grep -v '^Value'` - if [ "$OLD_VERSION" = "" ]; then - echo "You must run $ZM_PATH_BIN/zminit manually -" - return 1 - fi - fi - RETVAL=$? - - if [ $RETVAL != 0 ]; then - tbls=`mysql -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS -s -e 'show tables' $ZM_DB_NAME` - RETVAL=$? - if [ $RETVAL = 0 ]; then - echo "Initialize $prog database: -" - echo tbls | grep Config >/dev/null 2>&1 - RETVAL=$? - if [ $RETVAL != 0 ]; then - mysql -B -h $ZM_DB_HOST -u $ZM_DB_USER -p$ZM_DB_PASS $ZM_DB_NAME < $ZM_PATH_UPDATE/zm_create.sql - RETVAL=$? - [ $RETVAL = 0 ] && stat_done - [ $RETVAL != 0 ] && stat_fail - echo - return $RETVAL - fi - ( cd $ZM_PATH_UPDATE; perl $ZM_PATH_BIN/zmupdate.pl -f ) - RETVAL=$? - [ $RETVAL = 0 ] && stat_done - [ $RETVAL != 0 ] && stat_fail - echo - return $RETVAL - else - echo "No access to ZoneMinder database. -Run $ZM_PATH_BIN/zminit manually. -" - return $RETVAL - fi - else - [ "$ZM_VERSION" = "$OLD_VERSION" ] && return 0 - echo "Upgrade %s database: " "$prog" - $ZM_PATH_BIN/zmupdate.pl --version=$OLD_VERSION --noi && ( cd $ZM_PATH_UPDATE; perl $ZM_PATH_BIN/zmupdate.pl -f ) - RETVAL=$? - [ $RETVAL = 0 ] && stat_done - [ $RETVAL != 0 ] && stat_fail - echo - return $RETVAL - fi -} - -start() -{ - loadconf || return $? - checkcfg || return $? - checkdb || return $? - stat_busy "Starting $prog" - [ -d /var/run/zm ] || mkdir -m 774 /var/run/zm - chown -R $ZM_WEB_USER:$ZM_WEB_GROUP /var/run/zm - GetPath="select Value from Config where Name='ZM_PATH_SOCKS'" - 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'` - [ -d $ZM_PATH_SOCK ] || mkdir -m 774 -p $ZM_PATH_SOCK - sudo -u $ZM_WEB_USER test -O $ZM_PATH_SOCK \ - || chown -R $ZM_WEB_USER:$ZM_WEB_GROUP $ZM_PATH_SOCK - # Setup the log dir - [ -d /var/log/zm ] || mkdir /var/log/zm - for logs in zmaudit.log zmdc.log zmfilter.log zmpkg.log zmupdate.log zmwatch.log; do - touch /var/log/zm/$logs - done - chown -R $ZM_WEB_USER:$ZM_WEB_GROUP /var/log/zm - $command start - RETVAL=$? - [ $RETVAL = 0 ] && stat_done && add_daemon zm - [ $RETVAL != 0 ] && stat_fail - #[ $RETVAL = 0 ] && touch /var/lock/subsys/zm - return $RETVAL -} - -stop() -{ - stat_busy "Stopping $prog" - $command stop - RETVAL=$? - [ $RETVAL = 0 ] && stat_done && rm_daemon zm - [ $RETVAL != 0 ] && stat_fail - #[ $RETVAL = 0 ] && rm -f /var/lock/subsys/zm -} - -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') - stop - start - ;; - 'condrestart') - loadconf - checkcfg - result=`$ZM_PATH_BIN/zmdc.pl check` - if [ "$result" = "running" ]; then - $ZM_PATH_BIN/zmdc.pl shutdown > /dev/null - start - fi - ;; - 'status') - status - ;; - *) - echo "Usage: zm { start | stop | restart | condrestart | status } -" - RETVAL=1 - ;; + start) + stat_busy "Starting Zoneminder" + /usr/bin/zmfix -a + if /usr/bin/zmpkg.pl start >/dev/null ; then + add_daemon $daemon_name + stat_done + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping Zoneminder" + if /usr/bin/zmpkg.pl stop >/dev/null ; then + rm_daemon $daemon_name + stat_done + else + stat_fail + exit 1 + fi + ;; + + reload) + stat_busy "Reloading Zoneminder" + if /usr/bin/zmpkg.pl graceful >/dev/null ; then + add_daemon $daemon_name + stat_done + else + stat_fail + exit 1 + fi + ;; + + restart) + stat_busy "Restarting Zoneminder" + if /usr/bin/zmpkg.pl restart >/dev/null ; then + add_daemon $daemon_name + stat_done + else + stat_fail + exit 1 + fi + ;; + + status) + stat_busy "Checking Zoneminder status"; + ck_status $daemon_name + ;; + + *) + echo "usage: $0 {start|stop|reload|restart|status}" esac -exit $RETVAL + +exit 0 -- cgit v1.2.3-54-g00ecf