#!/bin/sh
PREFIX="/opt"
CALLER=$2
PATH=${PREFIX}/sbin:${PREFIX}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Start/stop all init scripts in /opt/etc/init.d including symlinks
# starting them in numerical order and
# stopping them in reverse numerical order
is_sourceshell() {
filename=$1
case "$filename" in
S* | *.sh )
return 1
;;
*)
return 0
;;
esac
}
do_action() {
fullfile=$1
action=$2
caller=$3
if test -x "$fullfile"; then
#echo $fullfile $action $caller
filename="${fullfile##*/}"
if is_sourceshell $filename; then
# Source shell script for speed.
trap "" INT QUIT TSTP EXIT
#set $action
#echo "trying $filename" >> /tmp/rc.log
. $fullfile $action $caller
else
# No sh extension, so fork subprocess.
$fullfile $action $caller
fi
fi
}
logger "Started $0${*:+ $*}."
case "$1" in
start)
for fullfile in $(ls ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile start $CALLER
done
;;
stop)
for fullfile in $(ls -r ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile stop $CALLER
done
;;
restart)
for fullfile in $(ls -r ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile stop $CALLER
done
for fullfile in $(ls ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile start $CALLER
done
;;
reconfigure)
for fullfile in $(ls ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile reconfigure $CALLER
done
;;
check)
for fullfile in $(ls ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile check $CALLER
done
;;
status)
for fullfile in $(ls ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile status $CALLER
done
;;
kill)
for fullfile in $(ls -r ${PREFIX}/etc/init.d/S*) ;do
do_action $fullfile kill $CALLER
done
;;
*)
printf "Usage: $0
{start|stop|restart|reconfigure|check|kill}\n" >&2
exit 1
;;
esac