prevent neutron-server init script for kill himself
[openstack-build/neutron-build.git] / rpm / SOURCES / neutron-server.init
index 36d792a8def9aea8eea95e3eb88d9f167e2dfd3a..88c47be474d2c369a8e744b44ac4a512f8a7920f 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 # neutron  OpenStack Software Defined Networking Service
 #
 
 prog=neutron
 exec="/usr/bin/$prog-server"
-config="/etc/$prog/$prog.conf"
+configs=(
+    "/usr/share/$prog/$prog-dist.conf" \
+    "/etc/$prog/$prog.conf" \
+    "/etc/$prog/plugin.ini" \
+)
 pidfile="/var/run/$prog/$prog.pid"
 logfile="/var/log/$prog/server.log"
 
@@ -21,9 +25,11 @@ lockfile=/var/lock/subsys/$prog-server
 
 start() {
     [ -x $exec ] || exit 5
-    [ -f $config ] || exit 6
+    for config in ${configs[@]}; do
+        [ -f $config ] || exit 6
+    done
     echo -n $"Starting $prog: "
-    daemon --user neutron --pidfile $pidfile "$exec --config-file $config --config-file /etc/$prog/plugin.ini --log-file $logfile &>/dev/null & echo \$! > $pidfile"
+    daemon --user neutron --pidfile $pidfile "$exec ${configs[@]/#/--config-file } --log-file $logfile &>/dev/null & echo \$! > $pidfile"
     retval=$?
     echo
     [ $retval -eq 0 ] && touch $lockfile
@@ -34,6 +40,16 @@ stop() {
     echo -n $"Stopping $prog: "
     killproc -p $pidfile $prog
     retval=$?
+    sleep 2
+    tailsss=$(ps axf | grep  $prog-server | grep 'bin/python' | awk '{print $1}')
+    itersss=100
+    while [ ! -z $tailsss ] && [ $itersss -gt 0 ] ; do
+      kill $tailsss
+      retval=$?
+      sleep 2
+      tailsss=$(ps axf | grep  $prog-server | grep 'bin/python' | awk '{print $1}')
+      itersss=$(($itersss-1))
+    done
     echo
     [ $retval -eq 0 ] && rm -f $lockfile
     return $retval