854ee57989
Currently we hardcode the user we use to start services. Allow the user to decided who to use. Sadly, we cannot support systemd services at this time. We likely need to switch to the systemd task or write out own logic. We'll have to revisting this in the future. Change-Id: I338d167863509667b935ccc7490d796315bc6153 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
142 lines
3.8 KiB
Bash
142 lines
3.8 KiB
Bash
#! /bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: zuul-launcher
|
|
# 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 launcher
|
|
### 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 Launcher"
|
|
NAME=zuul-launcher
|
|
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
SCRIPTNAME=/etc/init.d/$NAME
|
|
|
|
# Read configuration variable file if it is present
|
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
|
|
DAEMON=$PREFIX/bin/zuul-launcher
|
|
USER=${RUNASUSER:-zuul}
|
|
|
|
# Exit if the package is not installed
|
|
[ -x "$DAEMON" ] || exit 5
|
|
|
|
# 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
|
|
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 $DAEMON
|
|
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-launcher 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
|
|
|
|
:
|