-#!/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"
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
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