create loopback service

The loopback service handles the basic settings for the loopback
interface, regardless of the network manager you are using.
This commit is contained in:
William Hubbs 2013-04-08 12:46:51 -05:00
parent 9314ac64ea
commit 56f1752ce1
4 changed files with 42 additions and 12 deletions

View File

@ -1,6 +1,6 @@
DIR= ${INITDIR} DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \
root.in savecache.in swap.in swapfiles.in \ netmount.in root.in savecache.in swap.in swapfiles.in \
tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}} tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
BIN= ${OBJS} BIN= ${OBJS}

35
init.d/loopback.in Normal file
View File

@ -0,0 +1,35 @@
#!@SBINDIR@/runscript
# Copyright (c) 2013 William Hubbs <w.d.hubbs@gmail.com>
# Released under the 2-clause BSD license.
description="Configures the loopback interface."
depend()
{
return 0
}
start()
{
if [ "$RC_UNAME" = Linux ]; then
ebegin "Bringing up network interface lo"
if type ip > /dev/null 2>&1; then
ip addr add 127.0.0.1/8 dev lo brd + scope host
ip route add 127.0.0.0/8 dev lo scope host
ip link set lo up
else
ifconfig lo 127.0.0.1 netmask 255.0.0.0
route add -net 127.0.0.0 netmask 255.0.0.0 gw 127.0.0.1
fi
else
ebegin "Bringing up network interface lo0"
ifconfig lo0 127.0.0.1 netmask 255.0.0.0
route -q add -inet 127.0.0.0 -netmask 255.0.0.0 127.0.0.1
fi
eend $?
}
stop()
{
return 0
}

View File

@ -223,15 +223,6 @@ start()
einfo "Starting network" einfo "Starting network"
routeflush routeflush
if [ "$RC_UNAME" = "Linux" ]; then
ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
route add -net 127.0.0.0 netmask 255.0.0.0 \
gw 127.0.0.1 reject 2>/dev/null
else
ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1
route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \
127.0.0.1 -reject || cr=1
fi
eindent eindent
for int in $(interfaces); do for int in $(interfaces); do
local func= cf= local func= cf=
@ -330,6 +321,10 @@ stop()
routeflush routeflush
eindent eindent
for int in $(reverse $(interfaces u)); do for int in $(reverse $(interfaces u)); do
case "$int" in
lo|lo0) continue ;;
*) ;;
esac
intv=$(shell_var "$int") intv=$(shell_var "$int")
eval downcmd=\$ifdown_$intv eval downcmd=\$ifdown_$intv
eval cmd=\$ip_$intv eval cmd=\$ip_$intv

View File

@ -1,4 +1,4 @@
BOOT= bootmisc fsck hostname localmount \ BOOT= bootmisc fsck hostname localmount loopback \
root swap swapfiles sysctl urandom ${BOOT-${OS}} root swap swapfiles sysctl urandom ${BOOT-${OS}}
DEFAULT= local netmount DEFAULT= local netmount
SHUTDOWN= savecache ${SHUTDOWN-${OS}} SHUTDOWN= savecache ${SHUTDOWN-${OS}}