/etc/init.d/network(/etc/sysconfig/network-scripts),/sbin/service,/etc/init.d/*

来源:互联网 发布:java 线程池 join 编辑:程序博客网 时间:2024/05/22 05:03

一、/etc/init.d/network 

会把 /etc/sysconfig/network-scripts路径下的文件,名字以 ifcfg起始的,作为接口进行配置。

  • /etc/init.d/network start 
  • /etc/init.d/network stop
  • /etc/init.d/network restart  或reload
  • /etc/init.d/network  status 网卡状态查询 

network 脚本内容如下:

#! /bin/bash
#
# network       Bring up/down networking
#
# chkconfig: 2345 10 90
# description: Activates/Deactivates all network interfaces configured to \
#              start at boot time.
#
### BEGIN INIT INFO
# Provides: $network
### END INIT INFO


# Source function library.
. /etc/init.d/functions


if [ ! -f /etc/sysconfig/network ]; then
    exit 0
fi


. /etc/sysconfig/network


if [ -f /etc/sysconfig/pcmcia ]; then
. /etc/sysconfig/pcmcia
fi




# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0


# if the ip configuration utility isn't around we can't function.
[ -x /sbin/ip ] || exit 1


# Even if IPX is configured, without the utilities we can't do much
[ ! -x /sbin/ipx_internal_net -o ! -x /sbin/ipx_configure ] && IPX=


# Even if VLAN is configured, without the utility we can't do much
[ ! -x /sbin/vconfig ] && VLAN=


CWD=`pwd`
cd /etc/sysconfig/network-scripts    ---------- 这个路径下的文件,名字以 ifcfg起始的,作为接口配置。


. ./network-functions


# find all the interfaces besides loopback.
# ignore aliases, alternative configurations, and editor backup files
interfaces=$(ls ifcfg*| \
   LANG=C sed -e "$__sed_discard_ignored_files" \
      -e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
      -e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
   LANG=C sort -k 1,1 -k 2n | \
   LANG=C sed 's/ //')


# See how we were called.
case "$1" in
  start)
# IPv6 hook (pre IPv4 start)
if [ "$NETWORKING_IPV6" = "yes" ]; then
if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
/etc/sysconfig/network-scripts/init.ipv6-global start pre
fi
fi
  
sysctl -e -p /etc/sysctl.conf >/dev/null 2>&1


# bring up loopback interface
action $"Bringing up loopback interface: " ./ifup ifcfg-lo


case "$IPX" in
 yes|true)
   /sbin/ipx_configure --auto_primary=$IPXAUTOPRIMARY \
  --auto_interface=$IPXAUTOFRAME
   if [ "$IPXINTERNALNETNUM" != "0" ]; then
      /sbin/ipx_internal_net add $IPXINTERNALNETNUM $IPXINTERNALNODENUM
   fi
   ;;
esac


case "$VLAN" in
 yes)
   if [ -d /proc/net/vlan ] || modprobe 8021q >/dev/null 2>&1 ; then
test -z "$VLAN_NAME_TYPE" && VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD
action $"Setting 802.1Q VLAN parameters: " /sbin/vconfig set_name_type "$VLAN_NAME_TYPE"
   else
echo $"No 802.1Q VLAN support available in kernel."
   fi
   ;;
esac


vlaninterfaces=""
cipeinterfaces=""
xdslinterfaces=""
bridgeinterfaces=""


# bring up all other interfaces configured to come up at boot time
for i in $interfaces; do
unset DEVICE TYPE SLAVE
eval $(LANG=C fgrep "DEVICE=" ifcfg-$i)
eval $(LANG=C fgrep "TYPE=" ifcfg-$i)
eval $(LANG=C fgrep "SLAVE=" ifcfg-$i)


if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi


if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
cipeinterfaces="$cipeinterfaces $i"
continue
fi
if [ "$TYPE" = "xDSL" ]; then
       xdslinterfaces="$xdslinterfaces $i"
continue
fi


if [ "$TYPE" = "Bridge" ]; then
       bridgeinterfaces="$bridgeinterfaces $i"
continue
fi


if [ "${DEVICE%%.*}" != "$DEVICE"  -o  "${DEVICE##vlan}" != "$DEVICE" ] ; then
vlaninterfaces="$vlaninterfaces $i"
continue
fi

if [ "$SLAVE" = "yes" ]; then
continue
fi


if LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i > /dev/null ; then
       # this loads the module, to preserve ordering
is_available $i
continue
fi
# If we're in confirmation mode, get user confirmation.
if [ -f /var/run/confirm ]; then
confirm $i
test $? = 1 && continue
fi
action $"Bringing up interface $i: " ./ifup $i boot
done

# Bring up xDSL and CIPE interfaces
for i in $vlaninterfaces $bridgeinterfaces $xdslinterfaces $cipeinterfaces ; do 
            if ! LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i >/dev/null 2>&1 ; then
# If we're in confirmation mode, get user confirmation.
if [ -f /var/run/confirm ]; then
confirm $i
test $? = 1 && continue
fi
action $"Bringing up interface $i: " ./ifup $i boot
   fi
        done


# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
  grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
              /sbin/route add -$args
  done
fi    


  # IPv6 hook (post IPv4 start)
  if [ "$NETWORKING_IPV6" = "yes" ]; then
  if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
  /etc/sysconfig/network-scripts/init.ipv6-global start post
  fi
  fi
# Run this again to catch any interface-specific actions
sysctl -e -p /etc/sysctl.conf >/dev/null 2>&1
 
        touch /var/lock/subsys/network


[ -n "${NETWORKDELAY}" ] && /bin/sleep ${NETWORKDELAY}
        ;;
  stop)
  # Don't shut the network down if root is on NFS or a network
# block device.
        rootfs=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/" && $3 != "rootfs") { print $3; }}' /proc/mounts)
        rootopts=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $4; }}' /etc/mtab)

if [[ "$rootfs" =~ "^nfs" ]] || [[ "$rootopts" =~ "_netdev|_rnetdev" ]] ; then
exit 1
fi
  
  # If this is a final shutdown/halt, check for network FS,
# and unmount them even if the user didn't turn on netfs
if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
NFSMTAB=`LC_ALL=C awk '$3  ~ /^nfs/ { print $2 }' /proc/mounts`
SMBMTAB=`LC_ALL=C awk '$3 == "smbfs" { print $2 }' /proc/mounts`
NCPMTAB=`LC_ALL=C awk '$3 == "ncpfs" { print $2 }' /proc/mounts`
if [ -n "$NFSMTAB" -o -n "$SMBMTAB" -o -n "$NCPMTAB" ] ; then
/etc/init.d/netfs stop
fi
fi

  # IPv6 hook (pre IPv4 stop)
  if [ "$NETWORKING_IPV6" = "yes" ]; then
  if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
  /etc/sysconfig/network-scripts/init.ipv6-global stop pre
  fi
  fi
 
vlaninterfaces=""
cipeinterfaces=""
xdslinterfaces=""
bridgeinterfaces=""
remaining=""


# get list of bonding, cipe, and xdsl interfaces
for i in $interfaces; do
unset DEVICE TYPE
eval $(LANG=C fgrep "DEVICE=" ifcfg-$i)
eval $(LANG=C fgrep "TYPE=" ifcfg-$i)


if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi


if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
cipeinterfaces="$cipeinterfaces $i"
continue
fi
if [ "$TYPE" = "Bridge" ]; then
       bridgeinterfaces="$bridgeinterfaces $i"
       continue
fi
if [ "$TYPE" = "xDSL" ]; then
       xdslinterfaces="$xdslinterfaces $i"
continue
fi


if [ "${DEVICE%%.*}" != "$DEVICE"  -o  "${DEVICE##vlan}" != "$DEVICE" ] ; then
vlaninterfaces="$vlaninterfaces $i"
continue
fi
remaining="$remaining $i"
done

for i in $cipeinterfaces $xdslinterfaces $bridgeinterfaces $vlaninterfaces $remaining; do
(. ifcfg-$i
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi


if ! check_device_down $DEVICE; then
  action $"Shutting down interface $i: " ./ifdown $i boot
fi
)
done


case "$IPX" in
 yes|true)
   if [ "$IPXINTERNALNETNUM" != "0" ]; then
      /sbin/ipx_internal_net del
   fi
   ;;
esac


action $"Shutting down loopback interface: " ./ifdown ifcfg-lo


if [ -d /proc/sys/net/ipv4 ]; then
 if [ -f /proc/sys/net/ipv4/ip_forward ]; then
if [ `cat /proc/sys/net/ipv4/ip_forward` != 0 ]; then
action $"Disabling IPv4 packet forwarding: " sysctl -w net.ipv4.ip_forward=0
fi
 fi
 if [ -f /proc/sys/net/ipv4/ip_always_defrag ]; then
       if [ `cat /proc/sys/net/ipv4/ip_always_defrag` != 0 ]; then
       action $"Disabling IPv4 automatic defragmentation: " sysctl -w net.ipv4.ip_always_defrag=0
fi
 fi
fi


# IPv6 hook (post IPv4 stop)
if [ "$NETWORKING_IPV6" = "yes" ]; then
if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then
/etc/sysconfig/network-scripts/init.ipv6-global stop post
fi
fi

        rm -f /var/lock/subsys/network
        ;;
  status)
echo $"Configured devices:"
echo lo $interfaces


echo $"Currently active devices:"
echo $(/sbin/ip -o link show up | awk -F ": " '{ print $2 }')
;;
  restart|reload)
        cd "$CWD"
$0 stop
$0 start
;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status}"
        exit 1
esac


exit 0


如:

service network status

Configured devices:

lo LSN0 LSN1 SYSTEM SYSTEMA   ------ 其中device可以在eth0,eth1,eth2上。

Currently active devices:

lo eth0 eth1 eth2


/etc/sysconfig/network-scripts下ifcfg-anzi的配置如下:

# Generated by GrowExtNetwork on Wed Jul 31 12:40:39 CST 2013

DEVICE=eth2:anzi

ONBOOT=yes

BOOTPROTO=static

IPADDR=172.25.126.10

NETMASK=255.255.255.0

USERCTL=no

# IPM Specifics

# Not Managed by IPM


二、/sbin/service

也是shell脚本,可以执行所有/etc/init.d/的可执行文件。

如service network stop #关闭网络服务等。


三、/etc/init.d

/etc/init.d-# ls -l
total 428
-r-x------ 1 root root  4785 Feb  3  2012 SMmonitor
-rwxr-xr-x 1 root root  1725 Dec  3  2009 acpid
-rwxr-xr-- 1 root root   943 Feb 16  2012 adax-str
-rwxr-xr-x 1 root root  2062 Jan 20  2012 atd
-rwxr-xr-x 1 root root  3378 Mar 14  2012 auditd
-r-xr-xr-x 1 root root  1340 Jan 24  2013 blk-availability
-rwxr-xr-x 1 root root  2793 Mar  4  2011 crond
-rwxr-xr-x 1 root root  3118 Sep 25  2012 dhcpd
-rwxr-xr-x 1 root root  3254 Sep 25  2012 dhcpd6
-rwxr-xr-x 1 root root  2510 Sep 25  2012 dhcrelay
-rwxr-xr-x 1 root root  6065 Feb 22  2013 drbd
-rwxr-xr-x 1 root root  1761 Nov 16  2011 forcedown
-rw-r--r-- 1 root root 18216 Apr  5 05:18 functions
-rwxr-xr-x 1 root root  1801 Apr  1  2011 haldaemon
-rwxr-xr-x 1 root root  5829 Jan  9  2013 halt
-rwxr-xr-x 1 root root  7134 Dec  4  2011 hp-asrd
-rwxr-xr-x 1 root root 19482 Dec  4  2011 hp-health
-rwxr-xr-x 1 root root  2001 Dec  5  2012 htcacheclean
-rwxr-xr-x 1 root root  3371 Dec  5  2012 httpd
-rwxr-xr-x 1 root sys    505 Nov 10  2011 identd
-rwxr-xr-x 1 root root  2223 Jul 31 12:38 installIAS
-rwxr-xr-x 1 root root  9515 Oct 31  2012 ip6tables
-rwxr-xr-x 1 root root  1733 Nov 15  2011 ipm
-rwxr-xr-x 1 root root 14945 Dec 12  2012 ipmi
-rwxr-xr-x 1 root root  5036 Sep  4  2012 ipsec
-rwxr-xr-x 1 root root  9409 Oct 31  2012 iptables
-rwxr-xr-x 1 root root  1908 Oct 13  2012 irqbalance
-rwxr-xr-x 1 root root  4535 Oct 23  2012 iscsi
-rwxr-xr-x 1 root root  3990 Oct 23  2012 iscsid
-rwxr-xr-x 1 root root 16034 Jan 18  2013 kdump
-rwxr-xr-x 1 root root   652 Jan  9  2013 killall
-rwxr-xr-x 1 root root  2969 Jan 26  2009 lm_sensors
-r-xr-xr-x 1 root root  2134 Jan 24  2013 lvm2-lvmetad
-r-xr-xr-x 1 root root  2665 Jan 24  2013 lvm2-monitor
-rwxr-xr-x 1 root root  2034 Nov  1  2012 mcelogd
-rwxr-xr-x 1 root root  1777 Nov 20  2009 mcstrans
-rwxr-xr-x 1 root root  2571 Dec  7  2012 mdmonitor
-rwxr-xr-x 1 root root  2200 Sep  7  2012 messagebus
-rwxr-xr-x 1 root root  2363 Jan 12  2012 multipathd
-rwxr-xr-x 1 root root  7362 Dec  5  2012 named
-rwxr-xr-x 1 root root  2989 Jan  9  2013 netconsole
-rwxr-xr-x 1 root root  5486 Jan  9  2013 netfs
-rwxr-xr-x 1 root root  6334 Jan  9  2013 network
-rwxr-xr-x 1 root root  6340 Jan  9  2013 nfs
-rwxr-xr-x 1 root root  3526 Jan  9  2013 nfslock
-rwxr-xr-x 1 root root  2515 Nov 21  2012 nscd
-rwxr-xr-x 1 root root  1923 Jan 10  2013 ntpd
-rwxr-xr-x 1 root root  1866 Jan 10  2013 ntpdate
-rwxr-xr-x 1 root root  4381 May  2 05:54 openhpid
-rwxr-xr-x 1 root root  2023 Feb  1  2012 portreserve
-rwxr-xr-x 1 root root  1556 Jul 10  2012 psacct
-rwxr-xr-x 1 root root  3367 Jul 31 12:51 psp
-rwxr-xr-x 1 root root  1418 Nov 16  2011 rdac
-rwxr-xr-x 1 root root  1559 May 20  2009 rdisc
-rwxr-xr-x 1 root root  1822 Jan 16  2013 restorecond
-rwxr-xr-x 1 root root  2099 Nov 16  2011 ripm
-rwxr-xr-x 1 root root  1808 Dec  3  2011 rngd
-rwxr-xr-x 1 root root  2073 Oct 23  2012 rpcbind
-rwxr-xr-x 1 root root  2518 Jan  9  2013 rpcgssd
-rwxr-xr-x 1 root root  2300 Jan  9  2013 rpcidmapd
-rwxr-xr-x 1 root root  2464 Jan  9  2013 rpcsvcgssd
-rwxr-xr-x 1 root root  1792 Jan 26  2012 rrdcached
-rwxr-xr-x 1 root root  2011 Jan 10  2013 rsyslog
-rwxr-xr-x 1 root root  1698 Jan 16  2013 sandbox
-rwxr-xr-x 1 root root  2056 Nov 20  2012 saslauthd
-rwxr-xr-x 1 root root  4139 Feb 15  2013 sctp
-rwxr-xr-x 1 root root  3702 Feb 15  2010 sendmail
-rwxr-xr-x 1 root root   647 Jan  9  2013 single
-rwxr-xr-x 1 root root  3002 Sep 26  2012 smartd
-rwxr-xr-x 1 root root  2162 Oct 10  2012 snmpd
-rwxr-xr-x 1 root root  1738 Oct 10  2012 snmptrapd
-rwxr-xr-x 1 root root  4534 Dec 13  2012 sshd
-rwxr-xr-x 1 root root  1228 Mar 28  2012 sysstat
-rwxr-xr-x 1 root root  2294 Jan 15  2013 udev-post
-rwxr-xr-x 1 root root  2824 Feb 13  2013 vsftpd
-rwxr-xr-x 1 root root  3555 Dec  5  2012 xinetd