144
by Dimitri John Ledkov
auto update |
1 |
#!/bin/sh
|
2 |
### BEGIN INIT INFO
|
|
3 |
# Provides: trove-api
|
|
4 |
# Required-Start: $network $local_fs $remote_fs $syslog
|
|
5 |
# Required-Stop: $remote_fs
|
|
6 |
# Should-Start: postgresql mysql keystone rabbitmq-server ntp
|
|
7 |
# Should-Stop: postgresql mysql keystone rabbitmq-server ntp
|
|
8 |
# Default-Start: 2 3 4 5
|
|
9 |
# Default-Stop: 0 1 6
|
|
10 |
# Short-Description: Trove API
|
|
11 |
# Description: Frontend Trove API server
|
|
12 |
### END INIT INFO
|
|
13 |
||
14 |
# Author: Thomas Goirand <zigo@debian.org>
|
|
15 |
||
16 |
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
17 |
PATH=/sbin:/usr/sbin:/bin:/usr/bin |
|
18 |
DESC="Trove DBaaS API" |
|
19 |
NAME=trove-api |
|
20 |
DAEMON=/usr/bin/trove-api |
|
21 |
DAEMON_ARGS="--config-file=/etc/trove/trove.conf --log-dir=/var/log/trove --logfile=api.log" |
|
22 |
PIDFILE=/var/run/$NAME.pid |
|
23 |
SCRIPTNAME=/etc/init.d/$NAME |
|
24 |
SYSTEM_USER=trove |
|
25 |
||
26 |
# Exit if the package is not installed
|
|
27 |
[ -x $DAEMON ] || exit 0 |
|
28 |
||
29 |
. /lib/lsb/init-functions |
|
30 |
||
31 |
if [ ! -e /var/log/trove ] ; then |
|
32 |
mkdir -p /var/log/trove |
|
33 |
chown ${SYSTEM_USER} /var/log/trove |
|
34 |
fi
|
|
35 |
||
36 |
do_start () { |
|
37 |
start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null \ |
|
38 |
|| return 1 |
|
39 |
start-stop-daemon --start --background --quiet --chuid ${SYSTEM_USER}:${SYSTEM_USER} --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- \ |
|
40 |
$DAEMON_ARGS \ |
|
41 |
|| return 2 |
|
42 |
}
|
|
43 |
||
44 |
do_stop () { |
|
45 |
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE |
|
46 |
RETVAL="$?" |
|
47 |
rm -f $PIDFILE
|
|
48 |
return "$RETVAL" |
|
49 |
}
|
|
50 |
||
51 |
case "$1" in |
|
52 |
start)
|
|
53 |
log_daemon_msg "Starting $DESC" "$NAME" |
|
54 |
do_start |
|
55 |
case "$?" in |
|
56 |
0|1) log_end_msg 0 ;; |
|
57 |
2) log_end_msg 1 ;; |
|
58 |
esac
|
|
59 |
;;
|
|
60 |
stop)
|
|
61 |
log_daemon_msg "Stopping $DESC" "$NAME" |
|
62 |
do_stop |
|
63 |
case "$?" in |
|
64 |
0|1) log_end_msg 0 ;; |
|
65 |
2) log_end_msg 1 ;; |
|
66 |
esac
|
|
67 |
;;
|
|
68 |
status)
|
|
69 |
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? |
|
70 |
;;
|
|
71 |
restart|force-reload) |
|
72 |
log_daemon_msg "Restarting $DESC" "$NAME" |
|
73 |
do_stop |
|
74 |
case "$?" in |
|
75 |
0|1) |
|
76 |
do_start |
|
77 |
case "$?" in |
|
78 |
0) log_end_msg 0 ;; |
|
79 |
1) log_end_msg 1 ;; # Old process is still running |
|
80 |
*) log_end_msg 1 ;; # Failed to start |
|
81 |
esac
|
|
82 |
;;
|
|
83 |
*)
|
|
84 |
# Failed to stop
|
|
85 |
log_end_msg 1
|
|
86 |
;;
|
|
87 |
esac
|
|
88 |
;;
|
|
89 |
*)
|
|
90 |
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 |
|
91 |
exit 3 |
|
92 |
;;
|
|
93 |
esac
|