blob: d1a9fcc44df6378ee5e9cdb579285471bf540411 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
Index: sbin/rc-services.sh
===================================================================
--- sbin/rc-services.sh (revision 1993)
+++ sbin/rc-services.sh (working copy)
@@ -725,38 +725,28 @@
# Get and sort the dependencies of given service[s].
#
trace_dependencies() {
- local -a services=( "$@" ) net_deps
- local i j net_services x
+ local -a services=( "$@" ) net_deps=()
+ local i= j= net_services= x=
if [[ $1 == -* ]]; then
deptype="${1/-/}"
- if net_service "${myservice}" ; then
- services=( "net" "${myservice}" )
+ if net_service "${SVCNAME}" ; then
+ services=( "net" "${SVCNAME}" )
else
- services=( "${myservice}" )
+ services=( "${SVCNAME}" )
fi
fi
- net_services="$( cd "${svcdir}"/started; ls net.* 2>/dev/null )"
- # If no net services are running or we only have net.lo up, then
- # assume we are in boot runlevel or starting a new runlevel
- if [[ -z ${net_services} || ${net_services} == "net.lo" ]]; then
- get_net_services() {
- local runlevel="$1"
-
- if [[ -d "/etc/runlevels/${runlevel}" ]] ; then
- cd "/etc/runlevels/${runlevel}"
- ls net.* 2>/dev/null
- fi
- }
-
- local mylevel="${BOOTLEVEL}"
- local x="$( get_net_services "${mylevel}" )"
-
- [[ -f "${svcdir}/softlevel" ]] && mylevel="$( < "${svcdir}/softlevel" )"
- [[ ${BOOTLEVEL} != "${mylevel}" ]] && \
- local x="${x} $( get_net_services "${mylevel}" )"
- [[ -n ${x} ]] && net_services="${x}"
+ if is_runlevel_stop ; then
+ for x in $(dolisting "${svcdir}/started/net.*") \
+ $(dolisting "${svcdir}/inactive/net.*") ; do
+ net_services="${net_services} ${x##*/}"
+ done
+ elif is_runlevel_start || ! is_net_up ; then
+ for x in $(dolisting "/etc/runlevels/${BOOTLEVEL}/net.*") \
+ $(dolisting "/etc/runlevels/${SOFTLEVEL}/net.*") ; do
+ net_services="${net_services} ${x##*/}"
+ done
fi
# Cache the generic "net" depends
@@ -808,10 +798,10 @@
if [[ -n ${deptype} ]] ; then
# If deptype is set, we do not want the name of this service
x=" ${services[@]} "
- services=( ${x// ${myservice} / } )
+ services=( ${x// ${SVCNAME} / } )
# If its a net service, do not include "net"
- if net_service "${myservice}" ; then
+ if net_service "${SVCNAME}" ; then
x=" ${services[@]} "
sorted=( ${services// net / } )
fi
|