1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
#! /bin/sh
### BEGIN INIT INFO
# Provides: puppetmaster
# Required-Start: $network $named $remote_fs $syslog
# Required-Stop: $network $named $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/puppet
DAEMON_OPTS=""
NAME=master
DESC="puppet master"
test -x $DAEMON || exit 0
[ -r /etc/default/puppetmaster ] && . /etc/default/puppetmaster
. /lib/lsb/init-functions
if [ ! -d /var/run/puppet ]; then
mkdir -p /var/run/puppet
fi
chown puppet:puppet /var/run/puppet
is_true() {
if [ "x$1" = "xtrue" -o "x$1" = "xyes" -o "x$1" = "x0" ] ; then
return 0
else
return 1
fi
}
start_puppet_master() {
if is_true "$START" ; then
if [ "$SERVERTYPE" = "mongrel" ]
then
DAEMON_OPTS="$DAEMON_OPTS --servertype=mongrel"
NUMSTART=0
STARTPORT=$PORT
while [ $NUMSTART -lt $PUPPETMASTERS ]; do
start-stop-daemon --start --quiet --pidfile=/var/run/puppet/${NAME}-${STARTPORT}.pid \
--startas $DAEMON -- $NAME $DAEMON_OPTS --masterport=$STARTPORT --pidfile=/var/run/puppet/${NAME}-${STARTPORT}.pid
STARTPORT=$(($STARTPORT + 1))
NUMSTART=$(($NUMSTART + 1))
done
else
start-stop-daemon --start --quiet --pidfile /var/run/puppet/${NAME}.pid \
--startas $DAEMON -- $NAME $DAEMON_OPTS --masterport=$PORT
fi
else
echo ""
echo "puppetmaster not configured to start, please edit /etc/default/puppetmaster to enable"
fi
}
stop_puppet_master() {
if [ "$SERVERTYPE" = "mongrel" ]
then
NUMSTART=0
STOPPORT=$PORT
while [ $NUMSTART -lt $PUPPETMASTERS ]; do
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/puppet/${NAME}-${STOPPORT}.pid
rm -f /var/run/puppet/${NAME}-${STOPPORT}.pid
STOPPORT=$(($STOPPORT + 1))
NUMSTART=$(($NUMSTART + 1))
done
else
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/puppet/${NAME}.pid
fi
}
status_puppet_master() {
if is_true "$START" ; then
if [ "$SERVERTYPE" = "mongrel" ]
then
NUMSTART=0
STARTPORT=$PORT
while [ $NUMSTART -lt $PUPPETMASTERS ]; do
status_of_proc -p "/var/run/puppet/${NAME}-${STARTPORT}.pid" \
"${DAEMON}" "${NAME}-${STARTPORT}"
STARTPORT=$(($STARTPORT + 1))
NUMSTART=$(($NUMSTART + 1))
done
else
status_of_proc -p "/var/run/puppet/${NAME}.pid" "${DAEMON}" "${NAME}"
fi
else
echo ""
echo "puppetmaster not configured to start"
fi
}
case "$1" in
start)
log_begin_msg "Starting $DESC"
start_puppet_master
log_end_msg $?
;;
stop)
log_begin_msg "Stopping $DESC"
stop_puppet_master
log_end_msg $?
;;
reload)
# Do nothing, as Puppetmaster rechecks its config automatically
;;
status)
status_puppet_master
;;
restart|force-reload)
log_begin_msg "Restarting $DESC"
stop_puppet_master
sleep 1
start_puppet_master
log_end_msg $?
;;
*)
echo "Usage: $0 {start|stop|status|restart|force-reload}" >&2
exit 1
;;
esac
|