#
# plc Manages all PLC services on this machine
#
-# chkconfig: 2345 5 99
+# chkconfig: 2345 60 40
#
# description: Manages all PLC services on this machine
#
-# $Id$
-#
# Source function library and configuration
+# plc_reload is defined here
. /etc/plc.d/functions
# Verbosity
# but that's maybe a good thing, that all is done at first start
###
+# do not consider files that contain '.', '~' or 'functions' in the name
steps=($(
for step in /etc/plc.d/* ; do
stepname=$(basename $step)
- plainstepname=$(echo $stepname | sed -e 's,\.,,' -e 's,~,,')
+ plainstepname=$(echo $stepname | sed -e 's,\.,,' -e 's,~,,' -e 's,functions,,' )
if [ -f $step -a -x $step -a "$stepname" = "$plainstepname" ] ; then
priority=$(sed -ne 's/# priority: \(.*\)/\1/p' $step)
echo $priority $stepname
))
nsteps=${#steps[@]}
-# Regenerate configuration files
-reload ()
-{
- force=$1
-
- # Regenerate the main configuration file from default values
- # overlaid with site-specific and current values.
- # Thierry -- 2007-07-05 : values in plc_config.xml are *not* taken into account here
- files=(
- /etc/planetlab/default_config.xml
- /etc/planetlab/configs/site.xml
- )
- for file in "${files[@]}" ; do
- if [ -n "$force" -o $file -nt /etc/planetlab/plc_config.xml ] ; then
- tmp=$(mktemp /tmp/plc_config.xml.XXXXXX)
- plc-config --xml "${files[@]}" >$tmp
- if [ $? -eq 0 ] ; then
- mv $tmp /etc/planetlab/plc_config.xml
- chmod 444 /etc/planetlab/plc_config.xml
- else
- echo "PLC: Warning: Invalid configuration file(s) detected"
- rm -f $tmp
- fi
- break
- fi
- done
-
- # Convert configuration to various formats
- if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config ] ; then
- plc-config --shell >/etc/planetlab/plc_config
- fi
- if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/plc_config.py ] ; then
- plc-config --python >/etc/planetlab/plc_config.py
- fi
- if [ -n "$force" -o /etc/planetlab/plc_config.xml -nt /etc/planetlab/php/plc_config.php ] ; then
- mkdir -p /etc/planetlab/php
- plc-config --php >/etc/planetlab/php/plc_config.php
- fi
-}
-
usage()
{
echo "Usage: $0 [OPTION]... [COMMAND] [STEP]..."
# Get command
shift $(($OPTIND - 1))
if [ -z "$1" ] ; then
- usage
+ usage >&3
fi
command=$1
shift 1
if [ -z "$1" ] ; then
# Start or stop everything. Regenerate configuration first.
- reload force
+ plc_reload force
else
# Start or stop a particular step
steps=("$@")
if [ -x /etc/plc.d/$step ] ; then
/etc/plc.d/$step start
# Steps may alter the configuration, may need to regenerate
- reload
+ plc_reload
else
echo "PLC: $step: unrecognized step" >&4
exit 1
if [ -x /etc/plc.d/$step ] ; then
/etc/plc.d/$step stop
# Steps may alter the configuration, may need to regenerate
- reload
+ plc_reload
else
echo "PLC: $step: unrecognized step" >&4
exit 1
;;
reload)
- reload force
+ plc_reload force
;;
checkpoint)