diff options
author | gordon <gordon@FreeBSD.org> | 2002-06-13 22:14:37 +0000 |
---|---|---|
committer | gordon <gordon@FreeBSD.org> | 2002-06-13 22:14:37 +0000 |
commit | 9c5433cb225f7a4e56e87623ea2e4011179553a5 (patch) | |
tree | 3168589e209abd888b033397e3c46dee6131a116 /etc/rc.d/localdaemons | |
parent | 50d99cdfecd92f5323a18aa791a5b1cb9d8b7191 (diff) | |
download | FreeBSD-src-9c5433cb225f7a4e56e87623ea2e4011179553a5.zip FreeBSD-src-9c5433cb225f7a4e56e87623ea2e4011179553a5.tar.gz |
Merge in all the changes that Mike Makonnen has been maintaining for a
while. This is only the script pieces, the glue for the build comes next.
Submitted by: Mike Makonnen <makonnen@pacbell.net>
Reviewed by: silence on -current and -hackers
Prodded by: rwatson
Diffstat (limited to 'etc/rc.d/localdaemons')
-rw-r--r-- | etc/rc.d/localdaemons | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/etc/rc.d/localdaemons b/etc/rc.d/localdaemons new file mode 100644 index 0000000..0ddd4ad --- /dev/null +++ b/etc/rc.d/localdaemons @@ -0,0 +1,89 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: localdaemons +# REQUIRE: abi +# KEYWORD: FreeBSD shutdown + +. /etc/rc.subr + +name="localdaemons" +start_cmd="locald_start" +stop_cmd="locald_stop" + +locald_start() +{ + # For each dir in $local_startup, search for init scripts matching *.sh + # + case ${local_startup} in + [Nn][Oo] | '') + ;; + *) + echo -n 'Local package initialization:' + slist="" + if [ -z "${script_name_sep}" ]; then + script_name_sep=" " + fi + for dir in ${local_startup}; do + if [ -d "${dir}" ]; then + for script in ${dir}/*.sh; do + slist="${slist}${script_name_sep}${script}" + done + fi + done + script_save_sep="$IFS" + IFS="${script_name_sep}" + for script in ${slist}; do + if [ -x "${script}" ]; then + (set -T + trap 'exit 1' 2 + ${script} start) + elif [ -f "${script}" -o -L "${script}" ]; then + echo -n " (skipping ${script##*/}, not executable)" + fi + done + IFS="${script_save_sep}" + echo '.' + ;; + esac +} + +locald_stop() +{ + echo -n 'Shutting down daemon processes:' + + # For each dir in $local_startup, search for init scripts matching *.sh + case ${local_startup} in + [Nn][Oo] | '') + ;; + *) + slist="" + if [ -z "${script_name_sep}" ]; then + script_name_sep=" " + fi + for dir in ${local_startup}; do + if [ -d "${dir}" ]; then + for script in ${dir}/*.sh; do + slist="${slist}${script_name_sep}${script}" + done + fi + done + script_save_sep="$IFS" + IFS="${script_name_sep}" + for script in `reverse_list ${slist}`; do + if [ -x "${script}" ]; then + (set -T + trap 'exit 1' 2 + ${script} stop) + fi + done + IFS="${script_save_sep}" + echo '.' + ;; + esac +} + +load_rc_config $name +run_rc_command "$1" |