diff options
Diffstat (limited to 'conf/suse/server.init')
| -rw-r--r-- | conf/suse/server.init | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/conf/suse/server.init b/conf/suse/server.init new file mode 100644 index 000000000..aedb0c7c8 --- /dev/null +++ b/conf/suse/server.init @@ -0,0 +1,151 @@ +#!/bin/bash +# puppetmaster This shell script enables the puppetmaster server. +# +# Author: Duane Griffin <d.griffin@psenterprise.com> +# Martin Vuk <martin.vuk@fri.uni-lj.si> (SuSE support) +# +# chkconfig: - 65 45 +# +# description: Server for the puppet system management tool. +# processname: puppetmaster + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v ditto but be verbose in local rc status +# rc_status -v -r ditto and clear the local rc status +# rc_failed set local and overall rc status to failed +# rc_reset clear local rc status (overall remains) +# rc_exit exit appropriate to overall rc status + +lockfile=/var/lock/subsys/puppetmaster +pidfile=/var/run/puppet/puppetmasterd.pid + +# Source function library. +[ -f /etc/rc.status ] && . /etc/rc.status + +if [ -f /etc/sysconfig/puppetmaster ]; then + . /etc/sysconfig/puppetmaster +fi + +[ -z "$PUPPETMASTER_MANIFEST" ] && PUPPETMASTER_MANIFEST=/etc/puppet/manifests/site.pp +[ -z "$PUPPETMASTER_LOG" ] && PUPPETMASTER_LOG="/var/log/puppet/puppetmaster.log" +PUPPETMASTER_OPTS=" + --manifest=$PUPPETMASTER_MANIFEST \ + --logdest=${PUPPETMASTER_LOG} \ + ${PUPPETMASTER_EXTRA_OPTS}" +PUPPET_OPTS="" +[ -n "${PUPPET_SERVER}" ] && PUPPET_OPTS="--server=${PUPPET_SERVER}" +[ -n "$PUPPET_LOG" ] && PUPPET_OPTS="${PUPPET_OPTS} --logdest=${PUPPET_LOG}" +[ -n "$PUPPET_PORT" ] && PUPPET_OPTS="${PUPPET_OPTS} --port=${PUPPET_PORT}" + +prog=puppetmasterd +PUPPETMASTER=/usr/sbin/$prog + +start() { + echo -n $"Starting puppetmaster: " + + echo + return $RETVAL +} +# First reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - misc error +# 2 - invalid or excess args +# 3 - unimplemented feature (e.g. reload) +# 4 - insufficient privilege +# 5 - program not installed +# 6 - program not configured +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signalling is not supported) are +# considered a success. + +case "$1" in + start) + echo -n "Starting puppetmaster services." + ## Start daemon with startproc(8). If this fails + ## the echo return value is set appropriate. + + # startproc should return 0, even if service is + # already running to match LSB spec. + # Confirm the manifest exists + if [ -r $PUPPETMASTER_MANIFEST ]; then + startproc $PUPPETMASTER $PUPPETMASTER_OPTS && touch "$lockfile" + else + rc_failed + echo "Manifest does not exist: $PUPPETMASTER_MANIFEST" + fi + # Remember status and be verbose + rc_status -v + ;; + stop) + echo -n "Shutting down puppetmaster:" + ## Stop daemon with killproc(8) and if this fails + ## set echo the echo return value. + + killproc -QUIT $PUPPETMASTER && rm -f ${lockfile} ${pidfile} + + # Remember status and be verbose + rc_status -v + ;; + try-restart) + ## Stop the service and if this succeeds (i.e. the + ## service was running before), start it again. + $0 status >/dev/null && $0 restart + + # Remember status and be quiet + rc_status + ;; + restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + + # Remember status and be quiet + rc_status + ;; + force-reload) + ## Signal the daemon to reload its config. Most daemons + ## do this on signal 1 (SIGHUP). + ## If it does not support it, restart. + + echo -n "Reload service puppet" + ## if it supports it: + killproc -HUP $PUPPETMASTER + rc_status -v + ;; + reload) + ## Like force-reload, but if daemon does not support + ## signalling, do nothing (!) + + # If it supports signalling: + echo -n "Reload puppet services." + killproc -HUP $PUPPETMASTER + rc_status -v + ;; + status) + echo -n "Checking for service puppetmaster: " + ## Check status with checkproc(8), if process is running + ## checkproc will return with exit status 0. + + # Status has a slightly different for the status command: + # 0 - service running + # 1 - service dead, but /var/run/ pid file exists + # 2 - service dead, but /var/lock/ lock file exists + # 3 - service not running + + # NOTE: checkproc returns LSB compliant status values. + checkproc $PUPPETMASTER + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}" + exit 1 +esac +rc_exit |
