SRC(System Resource Controller) 通稱系統資源控制器是 AIX 裡非常重要的技術核心概念,用白話簡單來講就是控管了整個系統資源,包含軟硬體等等.所以想要身為一個好的AIX系統管理者,就要好好瞭解SRC的技術核心和運作原理.而由於範圍過廣,接下來我會分三篇和大家介紹.
****在來談SRC之前,我們要先來瞭解 AIX 系統啟動流程,就像 windows 開機可以有正常模式/安全模式/偵錯模式...等等,不同的模式會去執行不同的系統環境,而 AIX 也是一樣, 在這裡我們稱這些模式為 runlevel 它會先去呼叫 /etc/init 程序,透過它最後去讀取 /etc/inittab 這個檔案,就像早期的 DOS ,我們通常會把開機想要啟動的一些程式和環境變數寫在 auotexec.bat 檔裡, AIX 也不例外,在 /etc/inittab 裡定義了runlevel的內容,也包含runlevel預設值,整個啟動的環境設定都寫在裡面,今天就先和大家講解一下裡面的內容:
(內容依大家作業環境的關係,不盡相同,我擷錄當中重要部份和大家介紹)
root#/etc>cat /etc/inittab
: @(#)49 1.28.2.11 src/bos/etc/inittab/inittab, cmdoper, bos530 2/19/04 11:22:58
: IBM_PROLOG_BEGIN_TAG
: This is an automatically generated prolog.
:
: bos530 src/bos/etc/inittab/inittab 1.28.2.11
:
: Licensed Materials - Property of IBM
:
: (C) COPYRIGHT International Business Machines Corp. 1989,1993
: All Rights Reserved
:
: US Government Users Restricted Rights - Use, duplication or
: disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
:
: IBM_PROLOG_END_TAG
:
: COMPONENT_NAME: CMDOPER
:
: ORIGINS: 3, 27
:
: (C) COPYRIGHT International Business Machines Corp. 1989, 1993
: All Rights Reserved
: Licensed Materials - Property of IBM
:
: US Government Users Restricted Rights - Use, duplication or
: disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
:
: Note - initdefault and sysinit should be the first and second entry.
: 註:上面冒號的部份都是IBM版權內容宣告,你說它重要嗎! :-)
註:接下來每一行格式其值皆有其標準定義:
格式- code:runlevels:action:process
第一欄=> Code : 識別碼
第二欄=> Runlevels : 執行模式,這裡有2~9不等,例rc:23456789,表示選了2~9其中任一種模式都會呼叫這行程序,如果只有rc:234,表示選了2~4才會執行這一行,5~9則不會
第三欄=> Action : 處理的動作 , 有initdefault,wait,respawn等, 例如respawn表示一直重覆執行,就算這個prcoess死了,還會重新再起,就像windows被植入惡意程序的原理類似,刪也刪不掉,發現被關了,還會自己再跑起來,這樣好像有點侮辱了AIX的偉大...容易記比較重要啦)
第四欄=> Process : 要執行的操作與參數
init:2:initdefault: ( 註:這裡定義了預設的runlevel值是2 )
brc::sysinit:/sbin/rc.boot 3 >/dev/console 2>&1 # Phase 3 of system boot
( 註:如果runlevel的欄位是空白,就表示不管系統選哪一個runlevel都會執行此行)
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
(註:看到這行沒,SRC出現了,表示不管選到2~9哪一個runlevel,都會一直執行/usr/sbin/srcmstr這個程序)
rctcpip:23456789:wait:/etc/rc.tcpip > /dev/console 2>&1 # Start TCP/IP daemons
nim:2:wait:/usr/bin/startsrc -g nim >/dev/console 2>&1
sniinst:2:wait:/var/adm/sni/sniprei > /dev/console 2>&1
rcnfs:23456789:wait:/etc/rc.nfs > /dev/console 2>&1 # Start NFS Daemons
cron:23456789:respawn:/usr/sbin/cron
piobe:2:wait:/usr/lib/lpd/pioinit_cp >/dev/null 2>&1 # pb cleanup
qdaemon:23456789:wait:/usr/bin/startsrc -sqdaemon
writesrv:23456789:wait:/usr/bin/startsrc -swritesrv
uprintfd:23456789:respawn:/usr/sbin/uprintfd
shdaemon:2:off:/usr/sbin/shdaemon >/dev/console 2>&1 # High availability daemon
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
l7:7:wait:/etc/rc.d/rc 7
l8:8:wait:/etc/rc.d/rc 8
l9:9:wait:/etc/rc.d/rc 9 ( 註: 這裡定義了總共有從 2~9 的runlevel )
naudio::boot:/usr/sbin/naudio > /dev/null
logsymp:2:once:/usr/lib/ras/logsymptom # for system dumps
perfstat:2:once:/usr/lib/perf/libperfstat_updt_dictionary >/dev/console 2>&1
diagd:2:once:/usr/lpp/diagnostics/bin/diagd >/dev/console 2>&1
ctrmc:2:once:/usr/bin/startsrc -s ctrmc > /dev/console 2>&1
dt:2:wait:/etc/rc.dt
cons:0123456789:respawn:/usr/sbin/getty /dev/console
ha_star:h2:once:/etc/rc.ha_star >/dev/console 2>&1
ntbl_reset:2:once:/usr/bin/ntbl_reset_datafiles
rcml:2:once:/usr/sni/aix53/rc.ml > /dev/console 2>&1
tty0:2:respawn:/usr/sbin/getty /dev/tty0
tsm::once:/usr/bin/dsmc sched > /dev/null 2>&1 # TSM scheduler
tty3:2:respawn:/usr/sbin/getty /dev/tty3
fmc:2:respawn:/usr/opt/db2_08_01/bin/db2fmcd #DB2 Fault Monitor Coordinator
:xmdaily:2:once:/usr/bin/xmwlm -L 2>&1 >/dev/null # Start xmwlm daily recording
topasrec:2:once:/usr/bin/topas -R 2>&1 >/dev/null # Start topas recording
tty1:2:off:/usr/sbin/getty /dev/tty1
tty2:2:off:/usr/sbin/getty /dev/tty2
以上就是 /etc/inittab 裡大概內容,看到沒,SRC在系統一啟動就發生作用了,想要更瞭解SRC是如何控管系統資源的嗎?!你將在下一篇裡有更深入的發現,咱們AIX - SRC 漫談與應用 中篇 見囉