
The zuul.init and zuul-merger.init puppet module files did not check if pidfiles existed when starting both services. The pidfile's might exist in the event that the zuul-server and merger were killed, which doesn't clean them up. This change checks for whether those files exist and notifies the user to run the stop command which will clean up any residual pid files. Change-Id: Ie65fdf372f1710ab0c32d03f6b359e1860f566db
140 lines
3.4 KiB
Bash
140 lines
3.4 KiB
Bash
#! /bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: zuul
|
|
# Required-Start: $remote_fs $syslog
|
|
# Required-Stop: $remote_fs $syslog
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: Zuul
|
|
# Description: Trunk gating system merger
|
|
### END INIT INFO
|
|
|
|
# Do NOT "set -e"
|
|
|
|
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
DESC="Zuul Merger"
|
|
NAME=zuul-merger
|
|
DAEMON=/usr/local/bin/zuul-merger
|
|
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
SCRIPTNAME=/etc/init.d/$NAME
|
|
USER=zuul
|
|
|
|
# Exit if the package is not installed
|
|
[ -x "$DAEMON" ] || exit 0
|
|
|
|
# Read configuration variable file if it is present
|
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
|
|
# Load the VERBOSE setting and other rcS variables
|
|
. /lib/init/vars.sh
|
|
|
|
# Define LSB log_* functions.
|
|
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
. /lib/lsb/init-functions
|
|
|
|
#
|
|
# Function that starts the daemon/service
|
|
#
|
|
do_start()
|
|
{
|
|
# Return
|
|
# 0 if daemon has been started
|
|
# 1 if daemon was already running
|
|
# 2 if daemon could not be started
|
|
# 3 if pid file already exist
|
|
|
|
mkdir -p /var/run/$NAME
|
|
chown $USER /var/run/$NAME
|
|
ulimit -n 8192
|
|
if [ -f $PIDFILE ]; then
|
|
return 3
|
|
fi
|
|
start-stop-daemon --start --quiet --pidfile $PIDFILE -c $USER --exec $DAEMON --test > /dev/null \
|
|
|| return 1
|
|
start-stop-daemon --start --quiet --pidfile $PIDFILE -c $USER --exec $DAEMON -- \
|
|
$DAEMON_ARGS \
|
|
|| return 2
|
|
# Add code here, if necessary, that waits for the process to be ready
|
|
# to handle requests from services started subsequently which depend
|
|
# on this one. As a last resort, sleep for some time.
|
|
}
|
|
|
|
#
|
|
# Function that stops the daemon/service
|
|
#
|
|
do_stop()
|
|
{
|
|
# Return
|
|
# 0 if daemon has been stopped
|
|
# 1 if daemon was already stopped
|
|
# 2 if daemon could not be stopped
|
|
# other if a failure occurred
|
|
start-stop-daemon --stop --signal 9 --pidfile $PIDFILE
|
|
RETVAL="$?"
|
|
[ "$RETVAL" = 2 ] && return 2
|
|
rm -f /var/run/$NAME/*
|
|
return "$RETVAL"
|
|
}
|
|
|
|
#
|
|
# Function that sends a SIGHUP to the daemon/service
|
|
#
|
|
do_reload() {
|
|
#
|
|
# If the daemon can reload its configuration without
|
|
# restarting (for example, when it is sent a SIGHUP),
|
|
# then implement that here.
|
|
#
|
|
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name zuul-merger
|
|
return 0
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
do_start
|
|
case "$?" in
|
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
3) echo "Pidfile at $PIDFILE already exists, run service zuul-merger stop to clean up."
|
|
esac
|
|
;;
|
|
stop)
|
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
do_stop
|
|
case "$?" in
|
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
esac
|
|
;;
|
|
status)
|
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
;;
|
|
reload|force-reload)
|
|
#
|
|
# If do_reload() is not implemented then leave this commented out
|
|
# and leave 'force-reload' as an alias for 'restart'.
|
|
#
|
|
log_daemon_msg "Reloading $DESC" "$NAME"
|
|
do_reload
|
|
log_end_msg $?
|
|
;;
|
|
restart)
|
|
#
|
|
# If the "reload" option is implemented then remove the
|
|
# 'force-reload' alias
|
|
#
|
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
do_stop
|
|
do_start
|
|
;;
|
|
*)
|
|
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
exit 3
|
|
;;
|
|
esac
|
|
|
|
:
|