From 3332ac4747962e7a2f4e54e37e3a3c48e56ccaf3 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 30 Aug 2013 13:17:55 -0300 Subject: [PATCH] Bug 10624: 'status' option switch for the packages init script This patch makes the init script return the status of the relevant processes. It relies on the koha-list switches added by 10622, and is written on top of the patch from 10617 that cleaned the init script. To test: - Apply the patch (+ 10622 so the SIP part works), build package and install - Run $ service koha-common status Note: it can be tested just copying the debian/koha-common.init script to a server running koha-common instances and calling it $ ./koha-common.init status If you don't have a patched koha-list command it will fail to report SIP servers status. Regards To+ Sponsored-by: Universidad Nacional de Cordoba --- debian/koha-common.init | 79 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 6 deletions(-) diff --git a/debian/koha-common.init b/debian/koha-common.init index 2899343..4c730a9 100755 --- a/debian/koha-common.init +++ b/debian/koha-common.init @@ -70,6 +70,74 @@ do_reload() { koha-start-sip $(koha-list --enabled) } +# +# Function that checks zebrasrv is running for the specified instance +# +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 +} + +# +# Function that checks SIP server is running for the specified instance +# +is_sip_running() +{ + local instancename=$1 + + if daemon --name="$instancename-koha-sip" \ + --user="$instancename-koha.$instancename-koha" \ + --running ; then + return 0 + else + return 1 + fi +} + +# +# Function that shows the status of the zebrasrv daemon for +# enabled instances +# +zebra_status() +{ + for instance in $(koha-list --enabled); do + + log_daemon_msg "Zebra server running for instace $instance" + + if is_zebra_running $instance ; then + log_end_msg 0 + else + log_end_msg 1 + fi + done +} + +# +# Function that shows the status of the SIP server daemon for +# enabled instances +# +sip_status() +{ + for instance in $(koha-list --enabled --sip); do + + log_daemon_msg "SIP server running for instace $instance" + + if is_sip_running $instance ; then + log_end_msg 0 + else + log_end_msg 1 + fi + done +} + case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" @@ -108,13 +176,12 @@ case "$1" in ;; esac ;; -# TODO: Implement this. It should check every daemon is running -# status) -# status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? -# ;; + status) + zebra_status + sip_status + ;; *) - #echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 exit 3 ;; esac -- 1.7.9.5