stretch
[freeside.git] / init.d / freeside-init
index c82ea98..a7bb3d1 100644 (file)
@@ -2,8 +2,21 @@
 #
 # chkconfig: 345 86 16
 # description: Freeside daemons
+#
+### BEGIN INIT INFO
+# Provides:          freeside
+# Required-Start:    $time $remote_fs
+# Required-Stop:     $remote_fs
+# Should-Start:      postgresql mysql
+# Should-Stop:       postgresql mysql
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start Freeside daemons at boot time
+# Description:       Enable Freeside daemons
+### END INIT INFO
 
 QUEUED_USER=%%%QUEUED_USER%%%
+API_USER=%%%API_USER%%%
 
 SELFSERVICE_USER=%%%SELFSERVICE_USER%%%
 SELFSERVICE_MACHINES="%%%SELFSERVICE_MACHINES%%%"
@@ -19,6 +32,25 @@ export PATH
 case "$1" in
   start)
         # Start daemons.
+
+        for MACHINE in $SELFSERVICE_MACHINES; do
+          echo -n "Starting freeside-selfservice-server to $MACHINE: "
+          freeside-selfservice-server $SELFSERVICE_USER $MACHINE
+          echo "done."
+        done
+
+        echo -n "Starting freeside-selfservice-xmlrpcd: "
+        freeside-selfservice-xmlrpcd $SELFSERVICE_USER
+        echo "done."
+
+        echo -n "Starting freeside-xmlrpcd: "
+        freeside-xmlrpcd $API_USER
+        echo "done."
+
+#        echo -n "Starting freeside-jsonrpcd: "
+#        freeside-jsonrpcd $API_USER
+#        echo "done."
+
         echo -n "Starting freeside-queued: "
         #perl -MDBIx::Profile /usr/local/bin/freeside-queued $QUEUED_USER
         freeside-queued $QUEUED_USER
@@ -42,23 +74,29 @@ case "$1" in
         freeside-cdrd $QUEUED_USER
         echo "done."
 
-        for MACHINE in $SELFSERVICE_MACHINES; do
-          echo -n "Starting freeside-selfservice-server to $MACHINE: "
-          freeside-selfservice-server $SELFSERVICE_USER $MACHINE
-          echo "done."
-        done
+        echo -n "Starting freeside-cdrrated: "
+        freeside-cdrrated $QUEUED_USER
+        echo "done."
 
-        echo -n "Starting freeside-selfservice-xmlrpcd: "
-        freeside-selfservice-xmlrpcd $SELFSERVICE_USER
+        echo -n "Starting freeside-pingd: "
+        freeside-pingd $QUEUED_USER
         echo "done."
 
+        if [ -e /usr/local/bin/torrus ]; then
+          echo -n "Starting torrus collector: "
+          /usr/local/bin/torrus collector --tree=main
+          echo "done."
+        fi
+
         echo -n "Starting freeside-torrus-srvderive: "
         freeside-torrus-srvderive $QUEUED_USER
         echo "done."
 
-        #ip=`/sbin/ifconfig $IF | grep 'inet addr:' | cut -d: -f2- | cut -d' ' -f1`
-        #cp /opt/rt3/etc/RT_SiteConfig.pm.ORIG /opt/rt3/etc/RT_SiteConfig.pm
-        #perl -pi -e "s/localhost/$ip/" /opt/rt3/etc/RT_SiteConfig.pm
+        if [ -e /opt/rt3/etc/RT_SiteConfig.pm.ORIG_WEBDEMO_HACK ]; then
+          ip=`/sbin/ifconfig $IF | grep 'inet addr:' | cut -d: -f2- | cut -d' ' -f1`
+          cp /opt/rt3/etc/RT_SiteConfig.pm.ORIG_WEBDEMO_HACK /opt/rt3/etc/RT_SiteConfig.pm
+          perl -pi -e "s/localhost/$ip/" /opt/rt3/etc/RT_SiteConfig.pm
+        fi
 
         ;;
   stop)
@@ -94,10 +132,47 @@ case "$1" in
           echo "done."
         fi
 
+        if [ -e /var/run/freeside-cdrrated.pid ]; then
+          echo -n "Stopping freeside-cdrrated: "
+          kill `cat /var/run/freeside-cdrrated.pid`
+          echo "done."
+        fi
+
+        if [ -e /var/run/freeside-pingd.pid ]; then
+          echo -n "Stopping freeside-pingd: "
+          kill `cat /var/run/freeside-pingd.pid`
+          echo "done."
+        fi
+
+        if [ -e /var/run/freeside/torrus-srvderive.pid ]; then
+          echo -n "Stopping freeside-torrus-srvderive: "
+          kill `cat /var/run/freeside/torrus-srvderive.pid`
+          echo "done."
+        fi
+
+        if [ -e /var/run/torrus/collector.main_?.pid ]; then
+          echo -n "Stopping torrus collector: "
+          kill `cat /var/run/torrus/collector.main_?.pid`
+          echo "done."
+        fi
+
+        if [ -e /var/run/freeside/xmlrpcd.pid ]; then
+          echo -n "Stopping freeside-xmlrpcd: "
+          kill `cat /var/run/freeside/xmlrpcd.pid`
+          echo "done."
+        fi
+
+#        if [ -e /var/run/freeside/jsonrpcd.pid ]; then
+#          echo -n "Stopping freeside-jsonrpcd: "
+#          kill `cat /var/run/freeside/jsonrpcd.pid`
+#          echo "done."
+#        fi
+
         if [ -e /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid ]
         then
           echo -n "Stopping (old) freeside-selfservice-server: "
           kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid`
+          sleep 
           rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.pid
           echo "done."
         fi
@@ -106,9 +181,20 @@ case "$1" in
         for MACHINE in $SELFSERVICE_MACHINES; do
           if [ -e /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid ]
           then
-            echo -n "Stopping freeside-selfservice-server to $MACHINE"
+            echo -n "Stopping freeside-selfservice-server to $MACHINE"
             kill `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
+            howlong=10
+            while [ $howlong -gt 0 ] && kill -0 `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid` 2>/dev/null; do
+              echo -n '.'
+              sleep 1
+              howlong=$(( $howlong - 1 ))
+              if [ $howlong -eq 0 ]; then
+                echo -n 'forcefully.'
+                kill -9 `cat /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid`
+              fi
+            done
             echo "done."
+            rm /var/run/freeside-selfservice-server.$SELFSERVICE_USER.$MACHINE.pid
           fi
         done
 
@@ -118,12 +204,6 @@ case "$1" in
           echo "done."
         fi
 
-        if [ -e /var/run/freeside/torrus-srvderive.pid ]; then
-          echo -n "Stopping freeside-torrus-srvderive: "
-          kill `cat /var/run/freeside/torrus-srvderive.pid`
-          echo "done."
-        fi
-
         ;;
 
   restart)