Page MenuHomeClusterLabs Projects

booth-arbitrator
No OneTemporary

booth-arbitrator

#!/bin/bash
#
# BOOTH daemon init script for SUSE Linux based distributions
# (almost LSB-compliant, except for s/startproc/start_daemon/ etc.)
#
# booth-arbitrator BOOTH arbitrator daemon
#
# chkconfig: - 20 20
# processname: boothd
# pidfile: /var/run/booth.pid
# description: Cluster Ticket Registry
### BEGIN INIT INFO
# Provides: booth
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Should-Start:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 6
# Short-Description: start and stop BOOTH arbitrator daemon
### END INIT INFO
prog="boothd"
exec="/usr/sbin/$prog"
CONF_DIR=/etc/booth
BOOTH_DAEMON_STARTED=0
BOOTH_DAEMON_STARTING=1
BOOTH_DAEMON_EXIST=2
BOOTH_DAEMON_NOT_RUNNING=3
BOOTH_ERROR_GENERIC=4
OCF_ERR_GENERIC=1
OCF_NOT_RUNNING=7
. /etc/rc.status
check_status() {
local rc
rc=$BOOTH_ERROR_GENERIC
eval `"$exec" status "${cnf:+-c$cnf}" ; echo rc=$?`
case $rc in
0)
# shellcheck disable=SC2154
case "$booth_state" in
started) return $BOOTH_DAEMON_STARTED;;
starting) return $BOOTH_DAEMON_STARTING;;
*) return $BOOTH_ERROR_GENERIC;;
esac
;;
$OCF_NOT_RUNNING) return $BOOTH_DAEMON_NOT_RUNNING;;
$OCF_ERR_GENERIC) return $BOOTH_ERROR_GENERIC;;
*) return $BOOTH_ERROR_GENERIC;;
esac
}
status() {
printf "BOOTH daemon is "
if check_status; then
# shellcheck disable=SC2154
echo "running - PID $booth_lockpid for $booth_cfg_name, $booth_addr_string:$booth_port"
return 0
else
echo "stopped"
return 3
fi
}
start() {
local rc
[ -x $exec ] || exit 5
check_status; rc=$?
case "$rc" in
$BOOTH_DAEMON_STARTED|$BOOTH_DAEMON_STARTING|$BOOTH_DAEMON_EXIST)
echo "BOOTH daemon is running - PID $booth_lockpid for $booth_cfg_name, $booth_addr_string:$booth_port"
return 0
;;
$BOOTH_ERROR_GENERIC|$BOOTH_DAEMON_NOT_RUNNING)
printf "Starting BOOTH arbitrator daemon: "
startproc $exec start "${cnf:+-c$cnf}"
rc_status -v
;;
*) return 1;;
esac
}
stop() {
local rc wait_time
wait_time=5
check_status; rc=$?
case $rc in
$BOOTH_DAEMON_STARTED|$BOOTH_DAEMON_STARTING|$BOOTH_DAEMON_EXIST)
;;
$BOOTH_DAEMON_NOT_RUNNING)
echo "BOOTH arbitrator daemon is not running."
return 0
;;
*) return 1;;
esac
printf "Stopping BOOTH arbitrator daemon: "
# $exec stop "${cnf:+-c$cnf}"
# sleep 1
pkill -TERM -s $booth_lockpid boothd
sleep 0.1
check_status; rc=$?
while [ $rc -ne $BOOTH_DAEMON_NOT_RUNNING -a $wait_time -gt 0 ]
do
wait_time=$((wait_time-1))
sleep 1
check_status; rc=$?
done
if [ $rc -ne $BOOTH_DAEMON_NOT_RUNNING ]; then
pkill -KILL -s $booth_lockpid boothd
sleep 1
check_status; rc=$?
fi
test $rc -eq $BOOTH_DAEMON_NOT_RUNNING
rc_status -v
}
foreach() {
local cnf
local rc=0
for cnf in ${BOOTH_CONF_FILE:-$CONF_DIR/*.conf} ; do
"$@"
rc=$((rc|$?))
done
return $rc
}
restart() {
stop
start
}
condrestart() {
local rc
check_status; rc=$?
case "$rc" in
$BOOTH_DAEMON_STARTED|$BOOTH_DAEMON_STARTING|$BOOTH_DAEMON_EXIST)
# shellcheck disable=SC2154
[ ! -f "$booth_lockfile" ] || restart
;;
esac
}
case "$1" in
start|stop|restart|condrestart|status)
foreach $1
;;
reload|force-reload)
foreach restart
;;
try-restart)
foreach condrestart
;;
*)
echo "Usage: $0 {start|stop|restart|try-restart|condrestart|reload|force-reload|status}"
exit 2
;;
esac

File Metadata

Mime Type
text/x-shellscript
Expires
Mon, Dec 23, 12:45 PM (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1123538
Default Alt Text
booth-arbitrator (3 KB)

Event Timeline