Bug 13791: make koha-common init script aware of plack
authorTomas Cohen Arazi <tomascohen@theke.io>
Thu, 13 Aug 2015 17:54:58 +0000 (14:54 -0300)
committerTomas Cohen Arazi <tomascohen@unc.edu.ar>
Mon, 24 Aug 2015 16:00:41 +0000 (13:00 -0300)
This patch makes the packages' koha-common script aware of plack.
It does so by relying on koha-list --plack to know which instances
have Plack configured, and uses the koha-plack script to manage
the running daemons.

It also introduces a plack_status function to check the status of
the Plack daemon when called:

   $ servive koha-common status

Regards

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@unc.edu.ar>

debian/koha-common.init

index 241aaa6..ad41874 100755 (executable)
@@ -40,6 +40,14 @@ fi
 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
 . /lib/lsb/init-functions
 
+# include helper functions
+if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
+    . "/usr/share/koha/bin/koha-functions.sh"
+else
+    echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
+    exit 1
+fi
+
 #
 # Function that starts the daemon/service
 #
@@ -49,6 +57,7 @@ do_start()
     koha-create-dirs $(koha-list)
     koha-start-zebra $(koha-list --enabled)
     koha-start-sip $(koha-list --enabled)
+    koha-plack --start --quiet $(koha-list --enabled --plack)
 
     if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
         koha-indexer --start --quiet $(koha-list --enabled)
@@ -63,6 +72,7 @@ do_stop()
     # We stop everything, including disabled ones.
     koha-stop-zebra $(koha-list) || true
     koha-stop-sip $(koha-list) || true
+    koha-plack --stop --quiet $(koha-list --enabled --plack)
 
     if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
         koha-indexer --stop --quiet $(koha-list --enabled)
@@ -76,6 +86,7 @@ do_reload() {
     koha-restart-zebra $(koha-list --enabled)
     koha-stop-sip $(koha-list) || true
     koha-start-sip $(koha-list --enabled)
+    koha-plack --restart --quiet $(koha-list --enabled --plack)
 
     if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
         koha-indexer --restart --quiet $(koha-list --enabled)
@@ -83,39 +94,6 @@ do_reload() {
 }
 
 #
-# 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" \
-            --pidfiles="/var/run/koha/$instancename" \
-            --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
 #
@@ -123,7 +101,7 @@ zebra_status()
 {
     for instance in $(koha-list --enabled); do
 
-        log_daemon_msg "Zebra server running for instace $instance"
+        log_daemon_msg "Zebra server running for instance $instance"
 
         if is_zebra_running $instance ; then
             log_end_msg 0
@@ -141,7 +119,7 @@ sip_status()
 {
     for instance in $(koha-list --enabled --sip); do
 
-        log_daemon_msg "SIP server running for instace $instance"
+        log_daemon_msg "SIP server running for instance $instance"
 
         if is_sip_running $instance ; then
             log_end_msg 0
@@ -151,6 +129,24 @@ sip_status()
     done
 }
 
+#
+# Function that shows the status of the Plack server daemon for
+# enabled instances
+#
+plack_status()
+{
+    for instance in $(koha-list --enabled --plack); do
+
+        log_daemon_msg "Plack server running for instance ${instance}"
+
+        if is_plack_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"
@@ -192,6 +188,7 @@ case "$1" in
   status)
         zebra_status
         sip_status
+        plack_status
         ;;
   *)
     echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2