ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / debian / koha-common.init
index 241aaa6..99df08b 100755 (executable)
@@ -1,14 +1,16 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          koha-common
-# Required-Start:    $remote_fs
+# Required-Start:    $remote_fs memcached
 # Required-Stop:     $remote_fs
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
-# Short-Description: Start Zebra server for each Koha instance
+# Short-Description: Start required services for each Koha instance
 # Description:       For each enabled Koha instance on this host,
-#                    as listed by "koha-list --enabled", start a Zebra
-#                    server (using koha-start-zebra).
+#                    if enabled, start:
+#                      - a Zebra server (using koha-zebra)
+#                      - a Plack server (using koha-plack)
+#                      - a SIP server   (using koha-sip)
 ### END INIT INFO
 
 # Author: Lars Wirzenius <lars@catalyst.net.nz>
@@ -22,7 +24,7 @@ NAME="koha-common"
 SCRIPTNAME=/etc/init.d/$NAME
 
 # Exit if the package is not installed
-[ -x /usr/sbin/koha-start-zebra ] || exit 0
+[ -x /usr/sbin/koha-zebra ] || exit 0
 
 # Read configuration variable file if it is present
 if [ -r /etc/default/$NAME ]; then
@@ -40,6 +42,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
 #
@@ -47,8 +57,9 @@ do_start()
 {
     # We insure all required directories exist, including disabled ones.
     koha-create-dirs $(koha-list)
-    koha-start-zebra $(koha-list --enabled)
-    koha-start-sip $(koha-list --enabled)
+    koha-zebra --start $(koha-list --enabled)
+    koha-sip   --start $(koha-list --enabled --sip)
+    koha-plack --start $(koha-list --enabled --plack)
 
     if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
         koha-indexer --start --quiet $(koha-list --enabled)
@@ -61,8 +72,9 @@ do_start()
 do_stop()
 {
     # We stop everything, including disabled ones.
-    koha-stop-zebra $(koha-list) || true
-    koha-stop-sip $(koha-list) || true
+    koha-zebra --stop $(koha-list) || true
+    koha-sip   --stop $(koha-list --sip)
+    koha-plack --stop --quiet $(koha-list --enabled --plack)
 
     if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
         koha-indexer --stop --quiet $(koha-list --enabled)
@@ -73,48 +85,15 @@ do_stop()
 # Function that sends a SIGHUP to the daemon/service
 #
 do_reload() {
-    koha-restart-zebra $(koha-list --enabled)
-    koha-stop-sip $(koha-list) || true
-    koha-start-sip $(koha-list --enabled)
+    koha-zebra --restart $(koha-list --enabled)
+    koha-sip   --restart $(koha-list --enabled --sip)
+    koha-plack --restart --quiet $(koha-list --enabled --plack)
 
     if [ "$USE_INDEXER_DAEMON" = "yes" ]; then
         koha-indexer --restart --quiet $(koha-list --enabled)
     fi
 }
 
-#
-# 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 +102,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 +120,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 +130,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 +189,7 @@ case "$1" in
   status)
         zebra_status
         sip_status
+        plack_status
         ;;
   *)
     echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2