bsd.libnames.mk: Activate LIBDMSG.
[dragonfly.git] / etc / rc.d / localdaemons
blob950ded80a2cb7bbca0aa89da0c1408bb86aebfbb
1 #!/bin/sh
3 # $FreeBSD: src/etc/rc.d/localdaemons,v 1.2 2003/05/05 15:38:41 mtm Exp $
6 # PROVIDE: localdaemons
7 # BEFORE: securelevel
8 # KEYWORD: shutdown
10 . /etc/rc.subr
12 name="localdaemons"
13 start_cmd="locald_start"
14 stop_cmd="locald_stop"
16 # Returns true (0) if the passed argument is a valid name
17 # for a script, false (1) otherwise.
19 valid_scriptname()
21 case ${1##*.} in
22 orig)
23 return 1
25 sample)
26 return 1
28 dist)
29 return 1
31 esac
32 return 0
35 locald_start()
37 # For each dir in $local_startup, search for init scripts matching *
39 case ${local_startup} in
40 [Nn][Oo] | '')
43 echo -n 'Local package initialization:'
44 slist=""
45 if [ -z "${script_name_sep}" ]; then
46 script_name_sep=" "
48 for dir in ${local_startup}; do
49 if [ -d "${dir}" ]; then
50 for script in ${dir}/*; do
51 if valid_scriptname ${script}; then
52 slist="${slist}${script_name_sep}${script}"
54 done
56 done
57 script_save_sep="$IFS"
58 IFS="${script_name_sep}"
59 sortedslist=`rcorder -s nostart /etc/rc.d/* ${slist} 2>/dev/null | grep -v "^/etc/rc.d/" | tr '\n' "$IFS"`;
60 for script in ${sortedslist}; do
61 if [ -x "${script}" ]; then
62 (set -T
63 trap 'exit 1' 2
64 ${script} start)
65 elif [ -f "${script}" -o -L "${script}" ]; then
66 echo -n " (skipping ${script##*/}, not executable)"
68 done
69 IFS="${script_save_sep}"
70 echo '.'
72 esac
75 locald_stop()
77 echo -n 'Shutting down daemon processes:'
79 # For each dir in $local_startup, search for init scripts matching *
80 case ${local_startup} in
81 [Nn][Oo] | '')
84 slist=""
85 if [ -z "${script_name_sep}" ]; then
86 script_name_sep=" "
88 for dir in ${local_startup}; do
89 if [ -d "${dir}" ]; then
90 for script in ${dir}/*; do
91 if valid_scriptname ${script}; then
92 slist="${slist}${script_name_sep}${script}"
94 done
96 done
97 script_save_sep="$IFS"
98 IFS="${script_name_sep}"
99 sortedslist=`rcorder -s nostart /etc/rc.d/* ${slist} 2>/dev/null | grep -v "^/etc/rc.d/" | tr '\n' "$IFS"`;
100 for script in `reverse_list ${sortedslist}`; do
101 if [ -x "${script}" ]; then
102 (set -T
103 trap 'exit 1' 2
104 ${script} stop)
106 done
107 IFS="${script_save_sep}"
108 echo '.'
110 esac
113 load_rc_config $name
114 run_rc_command "$1"