prevent neutron-server init script for kill himself
[openstack-build/neutron-build.git] / rpm / SOURCES / neutron-server.init
1 #!/bin/bash
2 #
3 # neutron  OpenStack Software Defined Networking Service
4 #
5 # chkconfig:   - 98 02
6 # description: neutron provides an API to  \
7 #               * request and configure virtual networks
8 ### END INIT INFO
9
10 . /etc/rc.d/init.d/functions
11
12 prog=neutron
13 exec="/usr/bin/$prog-server"
14 configs=(
15     "/usr/share/$prog/$prog-dist.conf" \
16     "/etc/$prog/$prog.conf" \
17     "/etc/$prog/plugin.ini" \
18 )
19 pidfile="/var/run/$prog/$prog.pid"
20 logfile="/var/log/$prog/server.log"
21
22 [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
23
24 lockfile=/var/lock/subsys/$prog-server
25
26 start() {
27     [ -x $exec ] || exit 5
28     for config in ${configs[@]}; do
29         [ -f $config ] || exit 6
30     done
31     echo -n $"Starting $prog: "
32     daemon --user neutron --pidfile $pidfile "$exec ${configs[@]/#/--config-file } --log-file $logfile &>/dev/null & echo \$! > $pidfile"
33     retval=$?
34     echo
35     [ $retval -eq 0 ] && touch $lockfile
36     return $retval
37 }
38
39 stop() {
40     echo -n $"Stopping $prog: "
41     killproc -p $pidfile $prog
42     retval=$?
43     sleep 2
44     tailsss=$(ps axf | grep  $prog-server | grep 'bin/python' | awk '{print $1}')
45     itersss=100
46     while [ ! -z $tailsss ] && [ $itersss -gt 0 ] ; do
47       kill $tailsss
48       retval=$?
49       sleep 2
50       tailsss=$(ps axf | grep  $prog-server | grep 'bin/python' | awk '{print $1}')
51       itersss=$(($itersss-1))
52     done
53     echo
54     [ $retval -eq 0 ] && rm -f $lockfile
55     return $retval
56 }
57
58 restart() {
59     stop
60     start
61 }
62
63 reload() {
64     restart
65 }
66
67 force_reload() {
68     restart
69 }
70
71 rh_status() {
72     status -p $pidfile $prog
73 }
74
75 rh_status_q() {
76     rh_status >/dev/null 2>&1
77 }
78
79
80 case "$1" in
81     start)
82         rh_status_q && exit 0
83         $1
84         ;;
85     stop)
86         rh_status_q || exit 0
87         $1
88         ;;
89     restart)
90         $1
91         ;;
92     reload)
93         rh_status_q || exit 7
94         $1
95         ;;
96     force-reload)
97         force_reload
98         ;;
99     status)
100         rh_status
101         ;;
102     condrestart|try-restart)
103         rh_status_q || exit 0
104         restart
105         ;;
106     *)
107         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
108         exit 2
109 esac
110 exit $?