72 lines
1.5 KiB
Plaintext
72 lines
1.5 KiB
Plaintext
![]() |
#!/bin/sh
|
||
|
|
||
|
# I choose not to document the -a feature.
|
||
|
usage()
|
||
|
{
|
||
|
echo "Error: Usage: ${0##*/} name start|stop|restart" >&2
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
if [ "$1" = -a ]; then
|
||
|
# Load configuration
|
||
|
. /etc/rc.conf
|
||
|
|
||
|
# Start services
|
||
|
if [ "$SERVICES" ]; then
|
||
|
case "$2" in
|
||
|
stop)
|
||
|
# Reverse the order of the services
|
||
|
unset r
|
||
|
for i in $SERVICES; do
|
||
|
r="$i $r"
|
||
|
done
|
||
|
SERVICES="$r"
|
||
|
echo -n "Stopping services:"
|
||
|
;;
|
||
|
start)
|
||
|
echo -n "Starting services:"
|
||
|
;;
|
||
|
*)
|
||
|
usage
|
||
|
;;
|
||
|
esac
|
||
|
for service in $SERVICES; do
|
||
|
echo -n " $service"
|
||
|
output=$(/etc/rc.d/$service $2 2>&1)
|
||
|
[ $? -eq 0 ] || echo -n ' [ERROR]'
|
||
|
echo $output| logger -t $service
|
||
|
done
|
||
|
echo
|
||
|
echo
|
||
|
fi
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
if [ -x /etc/rc.d/"$1" -a -f /etc/rc.d/"$1" ]; then
|
||
|
case "$2" in
|
||
|
stop)
|
||
|
/etc/rc.d/$1 stop
|
||
|
;;
|
||
|
start)
|
||
|
/etc/rc.d/$1 start
|
||
|
;;
|
||
|
restart)
|
||
|
/etc/rc.d/$1 stop
|
||
|
/etc/rc.d/$1 start
|
||
|
;;
|
||
|
*)
|
||
|
usage
|
||
|
;;
|
||
|
esac
|
||
|
elif [ -z "$1" ]; then
|
||
|
usage
|
||
|
else
|
||
|
echo "${0##*/} Error: service \`$1' unknown"
|
||
|
echo -n These services are known:
|
||
|
cd /etc/rc.d
|
||
|
for i in *; do
|
||
|
echo -n " $i"
|
||
|
done
|
||
|
echo
|
||
|
fi
|