diff options
Diffstat (limited to 'debian/bcfg2.init')
-rw-r--r-- | debian/bcfg2.init | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/debian/bcfg2.init b/debian/bcfg2.init new file mode 100644 index 000000000..76adf0ad4 --- /dev/null +++ b/debian/bcfg2.init @@ -0,0 +1,141 @@ +#!/bin/sh +# +# bcfg2 - bcfg2 configuration client +# +# chkconfig: 2345 19 81 +# description: bcfg2 client for configuration requests +# +### BEGIN INIT INFO +# Provides: bcfg2 +# Required-Start: $network $remote_fs $named +# Required-Stop: $network $remote_fs $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Configuration management client +# Description: Bcfg2 is a configuration management system that builds +# installs configuration files served by bcfg2-server +# This is a client that installs the server provided +# Configuration. +### END INIT INFO + +# This might need some better logic +BCFG2=/usr/sbin/bcfg2 + +# Set default options +# You can set script specific options with BCFG2_OPTIONS_INIT +# You can set agent-mode specific options with BCFG2_OPTIONS_AGENT +BCFG2_OPTIONS="-q" + +# Disabled per default +BCFG2_ENABLED=0 +BCFG2_INIT=0 +BCFG2_AGENT=0 + +# Include default startup configuration if exists +test -f "/etc/default/bcfg2" && . /etc/default/bcfg2 + +[ "$BCFG2_ENABLED" -eq 0 ] && exit 0 +[ "$BCFG2_AGENT" -eq 0 -a "$BCFG2_INIT" -eq 0 ] && exit 0 + +# Exit if bcfg2 doesn't exist and is not executable +test -x $BCFG2 || exit 5 + +# Agent mode daemon capability +PIDFILE=/var/run/bcfg2-agent.pid +# Internal variables +BINARY=$(basename $BCFG2) + +AGENT_EXTRA_OPTS="-A -i ${PIDFILE}" + +# Include lsb functions +. /lib/lsb/init-functions + +start () { + echo -n "Running configuration management client: " + if [ "$BCFG2_AGENT" -eq 1 ] + then + start_daemon ${BCFG2} ${AGENT_EXTRA_OPTS} ${BCFG2_OPTIONS} ${BCFG2_OPTIONS_AGENT} + STATUS=$? + fi + + if [ "$BCFG2_INIT" -eq 1 ]; then + ${BCFG2} ${BCFG2_OPTIONS} ${BCFG2_OPTIONS_INIT} + STATUS=$? + fi + + if [ "$STATUS" -eq 0 ] + then + log_success_msg "bcfg2" + if [ "$BCFG2_AGENT" -eq 1 ]; then + test -d /var/lock/subsys && touch /var/lock/subsys/bcfg2-agent + fi + else + log_failure_msg "bcfg2" + fi + return $STATUS +} + +status () { + if [ "$BCFG2_AGENT" -eq 1 ] + then + PID=$(pidof -x $BINARY) + if [ -n "$PID" ] ; then + log_success_msg "$BINARY (pid $PID) is running..." + return 0 + fi + if [ -f $PIDFILE ]; then + if [ -n "$PID" ]; then + log_failure_msg "$BINARY dead but pid file exists..." + return 1 + fi + fi + else + return 0 + fi +} + +stop () { + if [ "$BCFG2_AGENT" -eq 1 ] + then + echo -n "Stopping configuration management client daemon: " + killproc -p $PIDFILE ${BINARY} + STATUS=$? + if [ "$STATUS" -eq 0 ] + then + log_success_msg "bcfg2" + if [ "$BCFG2_AGENT" -eq 1 ]; then + test -d /var/lock/subsys && rm -f /var/lock/subsys/bcfg2-agent + fi + else + log_failure_msg "bcfg2" + fi + return $STATUS + else + return 0 + fi +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status + ;; + restart|reload|force-reload) + if [ "$BCFG2_AGENT" -eq 1 ] + then + stop + sleep 5 + start + fi + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload|status}" + exit 1 +esac + +exit 0 |