#!/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