netbase: merge init script updates from upstream
* Read /proc/mounts only once. * Support many more network filesystem types. * Remaining differences to netbase 4.47: - Uses the mountvirtfs keyword instead of mountkernfs - Doesn't use lsb functions - Doesn't print a warning if /etc/network/options exists - Doesn't use --exclude parameter for ifup, because busybox doesn't support it. (From OE-Core rev: faca42ee5249cf6aae9e53e44bb404de21dd4471) Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
b099511bd9
commit
3db152524f
|
@ -1,52 +1,89 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
#!/bin/sh -e
|
||||
### BEGIN INIT INFO
|
||||
# Provides: networking
|
||||
# Required-Start: $local_fs mountvirtfs
|
||||
# Required-Start: mountvirtfs $local_fs
|
||||
# Required-Stop: $local_fs
|
||||
# Should-Start: ifupdown
|
||||
# Should-Stop: ifupdown
|
||||
# Default-Start: S
|
||||
# Default-Stop: 0 6
|
||||
# Short-Description: Raise network interfaces and configure them
|
||||
# Short-Description: Raise network interfaces.
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
|
||||
|
||||
if ! [ -x /sbin/ifup ]; then
|
||||
[ -x /sbin/ifup ] || exit 0
|
||||
|
||||
check_network_file_systems() {
|
||||
[ -e /proc/mounts ] || return 0
|
||||
|
||||
if [ -e /etc/iscsi/iscsi.initramfs ]; then
|
||||
echo "not deconfiguring network interfaces: iSCSI root is mounted."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exec 9<&0 < /proc/mounts
|
||||
while read DEV MTPT FSTYPE REST; do
|
||||
case $DEV in
|
||||
/dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
|
||||
echo "not deconfiguring network interfaces: network devices still mounted."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
case $FSTYPE in
|
||||
nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs)
|
||||
echo "not deconfiguring network interfaces: network file systems still mounted."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exec 0<&9 9<&-
|
||||
}
|
||||
|
||||
check_network_swap() {
|
||||
[ -e /proc/swaps ] || return 0
|
||||
|
||||
exec 9<&0 < /proc/swaps
|
||||
while read DEV MTPT FSTYPE REST; do
|
||||
case $DEV in
|
||||
/dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
|
||||
echo "not deconfiguring network interfaces: network swap still mounted."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exec 0<&9 9<&-
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Configuring network interfaces... "
|
||||
ifup -a
|
||||
echo "done."
|
||||
;;
|
||||
|
||||
stop)
|
||||
if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
|
||||
grep -q "^/ nfs$"; then
|
||||
echo "NOT deconfiguring network interfaces: / is an NFS mount"
|
||||
elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
|
||||
grep -q "^/ smbfs$"; then
|
||||
echo "NOT deconfiguring network interfaces: / is an SMB mount"
|
||||
elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
|
||||
grep -qE '^(nfs|smbfs|ncp|coda)$'; then
|
||||
echo "NOT deconfiguring network interfaces: network shares still mounted."
|
||||
else
|
||||
check_network_file_systems
|
||||
check_network_swap
|
||||
|
||||
echo -n "Deconfiguring network interfaces... "
|
||||
ifdown -a
|
||||
echo "done."
|
||||
fi
|
||||
;;
|
||||
|
||||
force-reload|restart)
|
||||
echo -n "Reconfiguring network interfaces... "
|
||||
ifdown -a
|
||||
echo "Running $0 $1 is deprecated because it may not enable again some interfaces"
|
||||
echo "Reconfiguring network interfaces... "
|
||||
ifdown -a || true
|
||||
ifup -a
|
||||
echo "done."
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
|
||||
echo "Usage: /etc/init.d/networking {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ HOMEPAGE = "http://packages.debian.org/netbase"
|
|||
SECTION = "base"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
|
||||
PR = "r2"
|
||||
PR = "r3"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
|
|
Loading…
Reference in New Issue