From: Tomas Cohen Arazi Date: Mon, 29 Apr 2013 14:08:35 +0000 (-0300) Subject: Bug 10146 - koha-stop-zebra error handling X-Git-Tag: v3.14.00-alpha1~781^2~1 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=898e178c6ff3a79bf991defb60aec8ff58f107c6;p=koha_fer Bug 10146 - koha-stop-zebra error handling koha-stop-zebra now - Checks the instance exists. - Checks the instance is enabled. - Checks if the zebra daemon is already running. Regards To+ Edit: Corrected the die message Sponsored-by: Universidad Nacional de Córdoba Signed-off-by: Robin Sheat Signed-off-by: Jared Camins-Esakov --- diff --git a/debian/scripts/koha-stop-zebra b/debian/scripts/koha-stop-zebra index 7f3efcc0ce..ae15cc7f51 100755 --- a/debian/scripts/koha-stop-zebra +++ b/debian/scripts/koha-stop-zebra @@ -1,6 +1,6 @@ #!/bin/sh # -# koha-stop-zebra -- Stop Zebra for named Koha instandes +# koha-stop-zebra - Stop Zebra for named Koha instances # Copyright 2010 Catalyst IT, Ltd # # This program is free software: you can redistribute it and/or modify @@ -18,20 +18,117 @@ set -e +die() +{ + echo "$@" 1>&2 + exit 1 +} + +warn() +{ + echo "$@" 1>&2 +} + +is_enabled() +{ + local instancename=$1 + + if ! is_instance $instancename; then + return 1 + fi + + if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \ + "/etc/apache2/sites-available/$instancename" ; then + return 1 + else + return 0 + fi +} + +is_instance() +{ + local instancename=$1 + + if find /etc/koha/sites -mindepth 1 -maxdepth 1 \ + -type d -printf '%f\n'\ + | grep -q -x $instancename ; then + return 0 + else + return 1 + fi +} + +is_zebra_running() +{ + local instancename=$1 + + if daemon --name="$instancename-koha-zebra" \ + --user="$instancename-koha.$instancename-koha" \ + --running ; then + return 0 + else + return 1 + fi +} + +stop_zebra_instance() +{ + local instancename=$1 + + if is_zebra_running $instancename; then + echo "Stopping Zebra server for $instancename" + daemon \ + --name="$instancename-koha-zebra" \ + --errlog="/var/log/koha/$instancename/zebra-error.log" \ + --stdout="/var/log/koha/$instancename/zebra.log" \ + --output="/var/log/koha/$instancename/zebra-output.log" \ + --verbose=1 \ + --respawn \ + --delay=30 \ + --user="$instancename-koha.$instancename-koha" \ + --stop \ + -- \ + zebrasrv \ + -v none,fatal,warn \ + -f "/etc/koha/sites/$instancename/koha-conf.xml" && \ + return 0 + else + return 1 + fi +} + +usage() +{ + local scriptname=$0 + cat <