http://book.51cto.com/art/201111/304528.htm
3.6.1 AIX网络服务的启动
在AIX系统启动的最后阶段(这个阶段激活了rootvg文件系统,挂载了rootvg中的文件系统,并在最后调用/etc/inittab文件),最后调用的一个脚本是/etc/inittab,该文件的内容(节选)如下:
- # cat /etc/inittab
- ……………………………………………………..
- init:2:initdefault:
- brc::sysinit:/sbin/rc.boot 3 >/dev/console 2>&1 # Phase 3 of system boot
- powerfail::powerfail:/etc/rc.powerfail 2>&1 | alog -tboot > /dev/console # Power Failure Detection
- mkatmpvc:2:once:/usr/sbin/mkatmpvc >/dev/console 2>&1
- atmsvcd:2:once:/usr/sbin/atmsvcd >/dev/console 2>&1
- load64bit:2:wait:/etc/methods/cfg64 >/dev/console 2>&1 # Enable 64-bit execs
- tunables:23456789:wait:/usr/sbin/tunrestore -R > /dev/console 2>&1 # Set tunables
- rc:23456789:wait:/etc/rc 2>&1 | alog -tboot > /dev/console # Multi-User checks
- fbcheck:23456789:wait:/usr/sbin/fbcheck 2>&1 | alog -tboot > /dev/console # run /etc/firstboot
- srcmstr:23456789:respawn:/usr/sbin/srcmstr # System Resource Controller
- rctcpip:23456789:wait:/etc/rc.tcpip > /dev/console 2>&1 # Start TCP/IP daemons
- sniinst:2:wait:/var/adm/sni/sniprei > /dev/console 2>&1
- ......................................................................................
- orapw:2:wait:/etc/loadext -L /etc
- h1:2:respawn:/etc/init.ohasd run >/dev/null 2>&1 </dev/null
- #
可以看到,其中的“srcmstr:23456789:respawn:/usr/sbin/srcmstr”标明了AIX中资源控制器SRC的启动情况。在随后的一行“rctcpip:23456789:wait:/etc/rc.tcpip”中,会启动AIX中的网络相关服务。
/etc/rc.tcpip是一个 shell 脚本,该脚本在执行过程中会使用SRC 命令,以服务的方式启动AIX网络服务所依托的AIX后台守护程序(daemons)。该脚本内容如下所示(节选):
- ####################################################################
- # rc.tcpip -
- # assumes interfaces are brought up by /etc/rc.net
- # starts TCP/IP daemons (sendmail, inetd, etc.)
- ####################################################################
- # start -
- # starts daemons using either src or command-line method
- # args:
- # $1: pathname of daemon
- # $2: non-null if we should use src to start the daemon
- # $3: any arguments to pass it
- #
- start()
- {
- # just return if the daemon doesn't exist
- #
- [ -x $1 ] || return 0
- # start the daemon using either src or command-line method
- #
- cmd=`basename $1`
- if [ -n "$2" ] ; then
- startsrc -s $cmd -a "$3" &
- else
- if [ $cmd = "portmap" ] ; then
- $1 $3 & # portmap must start in background
- else
- $1 $3
- fi
- echo "\t$cmd"
- fi
- }
- …………………………………………..
- # Start up ndpd-host daemon
- #start /usr/sbin/ndpd-host "$src_running"
- # Start up the ndpd-router daemon
- #start /usr/sbin/ndpd-router "$src_running"
- # Start up syslog daemon (for error and event logging)
- start /usr/sbin/syslogd "$src_running"
- # Start up print daemon
- #start /usr/sbin/lpd "$src_running"
- # Start up routing daemon (only start ONE)
- #start /usr/sbin/routed "$src_running" -q
- #start /usr/sbin/gated "$src_running"
- # Start up the sendmail daemon.
- qpi=30m # 30 minute interval
- start /usr/lib/sendmail "$src_running" "-bd -q${qpi}"
- # Start up Portmapper
- start /usr/sbin/portmap "$src_running"
- # Start up socket-based daemons
- start /usr/sbin/inetd "$src_running"
- # Start up Domain Name daemon
- #start /usr/sbin/named "$src_running"
- # Start up time daemon
- #start /usr/sbin/timed "$src_running"
- # Start up Network Time Protocol (NTP) daemon
- #start /usr/sbin/xntpd "$src_running"
- # Start up rwhod daemon (a time waster)
- #start /usr/sbin/rwhod "$src_running"
- # Start up the Simple Network Management Protocol (SNMP) daemon
- start /usr/sbin/snmpd "$src_running"
- # Start up the DHCP Server
- #start /usr/sbin/dhcpsd "$src_running"
- ………………………………………..
在/etc/rc.tcpip的开始部分会定义start函数,start函数(注意其中的关键行“startsrc -s $cmd -a "$3" &”)用来启动指定的TCP/IP相关服务,后面对这个函数进行调用,每个调用即是一个服务的启动任务,例如“start /usr/lib/sendmail "$src_running" "-bd -q${qpi}"”行,用来启动sendmail服务。
从/etc/rc.tcpip中可以看到,被启动的服务(守护进程)是TCP/IP所专有的,常用服务包括:gated 、inetd、named、routed、timed、snmpd、xntpd……
除此之外,还有若干服务是基本操作系统服务,如portmap、sendmail、syslogd等,它们在默认情况下都会被启动。
另外要注意格式,/etc/rc.tcpip中的大多数TCP/IP相关服务是被禁用的,也就是说该服务对应的启动命令是被注释掉的(前面标注 # 号的行为注释行)。
如果从/etc/inittab中删除 rc.tcpip行,则在AIX启动过程中将不会有任何网络的相关服务启动,甚至连CDE桌面环境都不能启动,因为CDE桌面环境将输出到某个IP地址上,在没有TCP/IP的情况下图形环境将会被挂起。另外,如果没有TCP/IP服务的支持,一些网络工具(如telnet、ftp)也就不能用了。