1. Boot Rom Startup Sequence
- Power을 on하면 H/W의 self test을 수행한다. ( RAM, IO Card 등 ) self test도중 error가 발생하면 Console의 왼쪽 하 단에 Diag code가 display 된다. (example : CD0A)
- Console Path을 찾는다.
- vmunix (커널)이 있는 Disk을 찾아 vmunix(커널)을 Loading한다.
2. /etc/init
- /stand/vmunix(커널)이 start되면 초기화 작업을 수행한 후에 /etc/init process을 실행시키고 자신은 swapper(process id 0)가 된다. /etc/init process는 /etc/inittab file을 참조하여 아래와 같은 수순으로 process을 기동시키고 시스템의 Run leve l에 따라 start up되는 process을 관리한다.
init process는 process id가 1이며 UNIX상에서 모든 Process의 Parent Process가 된다.
1) /sbin/ioinitrc
/etc/ioinit을 수행하여 iomap을 kernel에 인식시키고 /sbin/insf로 없는 special file 생성
2) /sbin/mtinit
/etc/mtconfig file을 읽어서 tape drive의 minor number를 kernel에 저장
3) /sbin/dasetup
mux card 에 driver program을 download
4) /sbin/bcheckrc
filesystem을 mount 하기 전에 filesystem의 상태를 확인하여 필요한 경우 filesystem을 check
5) /sbin/rc
/etc/rc script는 /etc/inittab file의 run level을 check하여 해당 run level에 맞는 directory의 script을 기동시킨다.
. /etc/rc1.d --- Run level 1 이상
. /etc/rc2.d --- Run level 2 이상
. /etc/rc3.d --- Run level 3 이상
즉 Run level이 1 이면 /etc/rc1.d의 script만 실행이되고,
Run level이 2 이면 /etc/rc1.d와 /etc/rc2.d의 script가 실행되고,
Run level이 3 이면 위의 3 directory의 script가 실행된다.
run level
state
sequence dir
/sbin/rc와의 관계
0
halted
/sbin/rc0.d
모든 start/kill script 수행됨
S
single user
/sbin/rc0.d
1
minimal system
configuration
/sbin/rc1.d
낮은 state에서 올 때 모든 start script 수행됨
2
multi-user
/sbin/re2.d
높은 state에서 올 때 kill script 수행됨
3
exported file system
/sbin/rc3.d
4
HP-VUE
/sbin/rc4.d
5
현재 사용하지 않음
/sbin/rc5.d
6
현재 사용하지 않음
/sbin/rc6.d
- /sbin/rc[0123456].d directory 아래의 file은 /sbin/init.d directory 아래의 script에 link 되어 있음
- link file의 구조
/sbin/rc2.d/S060cron
1 2 3 4
1: run level
2: start/kill script
3: 일련 번호 (작은 번호의 script가 먼저 수행)
4. script name
■ /sbin/rc1.d/S???*
S100hfsmount
/sbin/lvmrc로 logical volume start
mountall(1m)으로 hfs로 정의된 filesystem을 mount quotaon(1m)으로 quota start
S320hostname
hostname(1), uname(1) 수행
S400set_prvgrp
/etc/privgroup file을 읽어 setprivgrp(1m) 수행
S420set_date (/etc/rc.config.d/set_date)
/sbin/set_parms로 system 시간 수정
S440savecore (/etc/rc.config.d/savecore)
dump device에 kernle core dump가 있으면 savecore(1m)로 save
S500swap_start
swapon(1m)으로 /etc/fstab에 swap으로 정의된 partition 또는 logical volume을 swap으로 kernel에 인식시킴
S520syncer (/etc/rc.config.d/syncer)
/usr/sbin/syncer daemon을 start
■ /sbin/rc2.d/S???*
S008net.sd (/etc/rc.config.d/netconf)
ifconfig(1m), lanconfig(1m), route(1m) 명령 수행
S100swagentd
swagentd(1m) daemon을 start
S120swconfig
swconfig(1m) 명령으로 install은 되었으나 configure 되지않은 software를 configure 시킴
S200clean_ex
비정상으로 중단된 ex(1), vi(1) file을 recover
S202clean_uucp (/etc/rc.config.d/clean_uucp:$CLEAN_UUCP)
/usr/lbin/uucp/uuclean 수행하여 uucp 관련 log/lock file 정리
S204clean_tmps (/etc/rc.config.d/clean_tmps:$CLEAR_TMP)
/tmp/*, /usr/tmp/* file을 삭제
S206clean_adm (/etc/rc.config.d/clean:$CLEAN_ADM)
/var/adm/* 아래의 log을 OLD*로 변경하고 reset
S220syslogd (/etc/syslogd.conf)
syslogd.conf file에 의해 syslogd(1m) daemon 수행
S230ptydaemon (/etc/rc.config.d/ptydaemon:$PTYDAEMON_START)
pseudo tty를 process에 할당하는 ptydaemon을 start
S300nettl (/etc/rc.config.d/nettl:$NETTL)
network trace를 위한 nettl(1m) daemon start
S320hpether (/etc/rc.config.d/hpetherconf)
hpetherconf file을 읽어 lanadmin(1m) 을 이용하여 ethernet address를 변경
S340net (/etc/rc.config.d/netconf)
netconf file을 참조하여 ifconfig(1m), lanconfig(1m), route(1m) 명령 수행
S350x25 (/etc/rc.config.d/x25)
x25가 configure 되어 있으면 x25init(1m) 수행
S370named (/etc/rc.config:$NAMED)
named configure 되어 있으면 named(1m) daemon을 start
S400nfs.core
RPC program number를 DARPA protocol port number로 변경하는 portmap(1m) daemon을 start
S410nis.server (/etc/rc.config.d/namesvrs:$NIS_MASTER_SERVER,
$NIS_SLAVE_SERVER)
yellow page의 master/slave server로 정의되어 있는 경우
ypserv(1m), ypxfrd(1m), rpc.yppasswdd(1m) daemon을 start
S420nis.client (/etc/rc.config.d/namesvrs:$NIS_CLIENT)
yellow page의 client로 정의되어 있는 경우 ypbind(1m) daemon을 start
S430nfs.clent (/etc/rc.config.d/nfsconf:$NFS_CLIENT)
nfs client로 configure되어 있는 경우 portmap(1m), biod(1m), rpc.statd(1m), rpc.lockd(1m),
automount(1m) daemon을 start
S500inetd
internet service daemon인 inetd(1m)를 start
S510gated (/etc/rc.config.d:$GATED)
dynamic routing을 사용하는 경우 gated(1m) daemon을 start
S520rdpd (/etc/rc.config.d/netconf:$RDPD)
router discover protocol daemon인 rdpd(1m)을 start
S530rwhod (/etc/rc.config/netdaemon:$RWHOD)
system status daemon인 rwhod(1m)을 start
S540sendmail (/etc/rc.config.d/mailservs:$SENDMAIL_SERVER)
sendmail의 server로 정의되어 있는 경우 sendmail(1m) daemon을 start
S550ddfa (/etc/rc.config.d/netdaemon:$DDFA)
DTC device file access daemon을 start
S560SnmpMaster (/etc/rc.config.d/SnmpMaster:$SNMP_MASTER_START)
SNMP daemon인 snmpd(1m)를 start
S565SnmpHpunix (/etc/rc.config.d/SnmpHpunix:$SNMP_HPUNIX_START)
HP Unix subAgent daemon을 start
S565SnmpMib2 (/etc/rc.config.d/SnmpMib2:$SNMP_MIB2_START)
MIB2 subAgent daemon을 start
S570dce (/etc/rc.config.d/dce)
dce 관련 daemon을 start
S580dfs (/etc/rc.config.d/dfs)
dfs 관련 daemon을 start
S590ncs (/etc/rc.config.d/ncs:$START_LLBD, $START_GLBD)
ncs와 관련된 llbd(1m), glbd(1m) daemon을 start llbd는 hp-ux 10.0 부터 rpcd에 포함
S600i4lmd (/etc/rc.config.d/i4lmd:$START_I4LMD)
iFOR/LS licensing daemon을 start
S610rbootd (/etc/rc.config.d/netdaemons:$START_RBOOTD)
boot daemon인 rbootd(1m)을 start
S620xfs (/etc/rc.config.d/xfs:$RUN_X_FONT_SERVER)
X font server인 fs(1) daemon을 start
S630vt (/etc/rc.config.d/vt:$VTDAEMON_START)
virtual terminal daemon인 vtdaemon(1m)을 start
S650dtcmgr (/etc/rc.config.d/dtcmgr:$START_DTCMGR)
DTC Manager/UX를 위한 management protocol daemon인 dtcnmd(1m)를 start
S660xntpd (/etc/rc.config.d/netdaemons:$XNTPD)
network time synchronization daemon인 xntpd(1m)를 start
S680snaplus (/etc/rc.config.d/snaplus:$START_SNAPLUS)
sna+ 관련 daemon인 snapstart(1m)을 start
S700acct (/etc/rc.config.d/acct:$START_ACCT)
proccess accounting을 위해 /usr/sbin/acct/startup script start
S710hparray (/etc/rc.config.d/hparray:$HPARRAYSCAN)
HPC2400 disk array를 scan하기 위한 process start
S720lp (/etc/rc.config.d/lp:$LP)
lp spooler인 lpsched(1m)을 start
S730cron (/etc/rc.config.d/cron:$CRON)
cron daemon인 cron(1m)을 start
S740supprtinfo (/etc/rc.config.d/supprtinfo:$SUPPORTINFO)
hp-ux 10.0 부터는 on-line diagnostic이 optional product라는 message를 console에 display
S742diagnostic (/etc/rc.config.d/diagnostic:$DIAGNOSTICS)
diagnostic daemon인 DIAGINIT을 start
S750envd (/etc/rc.config.d/envd:$ENVD)
environmental daemon인 envd(1m)을 start
S760auditing (/etc/rc.config.d/auditing:$AUDITING)
auditing daemon인 audomon(1m)을 start
S770audio (/etc/rc.config.d/audio:$AUDID_SERVER)
audio
server daemon인 Aserver를 start
S800spa (/etc/rc.config.d/spa)
single point admin을 위한 준비 작업 수행
S810scope (/etc/rc.config.d/scope:$SCOPE_START)
performance collection software인 scopeux의 startup script를 start
S820prm (/etc/rc.config.d/prm:$PRM_ENABLE)
process resource manager를 configure/start 시키는 script
S880swcluster (/etc/rc.config.d/swcluster)
SD/SD child process에 의해 사용되는 environment variable을 set
S900hpnpd
hp network based printer를 위한 daemon인 hpnpd(1m)를 start
S900laserrx (/etc/rc.config.d/laserrx:$LASERRX)
laserrx의 spooler인 iasqlsvr를 start
■ /sbin/rc3.d/S???*
S100nfs.server (/etc/rc.config.d/nfsconf:$NFS_SERVER)
nfs server에 필요한 daemon을 start
S800cmcluster (/etc/rc.config.d/cmcluster:$AUTOSTART_CMCLD)
CM cluster에 자신 node를 등록