找回密码
 注册
关于网站域名变更的通知
查看: 200|回复: 1
打印 上一主题 下一主题

etc配置文件解读——inittab

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-6-22 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
PC主机:Ubuntu 和 redhat 9.0
" c! v8 B. L& g* Y- {/ @5 b/ z  z. V( E# Q# W" }
目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30
4 x8 L4 L- p7 Y) o
0 p$ S; M1 R/ `NOTE:这里的讲解将针对嵌入式Linux,而不是一般的PC平台。
0 d: k. v3 \" ~7 t% j+ H+ y  a& Q5 w. a% M
如发现错误欢迎指正。
( ~9 C: J! r5 l5 A1 _$ Q' E5 N3 ^2 M$ n
8 m5 {" u2 }% h% w* l) y3 L
4 j, T6 a7 d) Z: [
首先,先来看下我的/etc/inittab是怎么样的,然后再详细说明。
* ?1 T8 ]7 u& H. ]4 e. j6 z) m$ q$ S$ \
3 a6 G/ b7 S2 G# f9 U
[root@yj423 /]#cat /etc/inittab
5 A  L5 x0 K2 O::sysinit:/etc/init.d/rcS/ D) `; @- Y/ i
console::respawn:-/bin/sh
- Q/ g0 c8 p0 ]' N6 b1 F7 P:: once:/usr/sbin/telnetd -l /bin/login
7 B- E* K  n' N3 }1 }( _::ctrlaltdel:/sbin/reboot- E: f8 B! T; j: B
::shutdown:/bin/umount -a -r
4 B  ], w. ^& Q0 [. [* ]0 v( s( K% S1 s9 _( X* x
这个配置文档的内容什么时候会被执行呢?
6 K2 |9 v5 A- `- w
! s9 y5 D/ |$ J当用户进程init启动以后,该进程会读取该配置文档中的内容,然后执行。而在嵌入式系统中,用户进程init通常就是由busybox产生的/linuxrc。
9 b& k* {& E8 i8 r. C; r3 T
1 a; T4 @& g; w- q# T& A, O该文档中每一行的格式如下:2 R; i+ q$ X' k0 a2 y

. @7 B7 @  X. i1 A* ~<id>:<runlevels>:<action>:<process>+ F. l3 Q, e/ s, R; u
0 m) L4 q1 T7 w  S2 m
id:该字段通常是busybox的init进程来用来寻找controlling tty,也就是终端设备。这个字段的前面会被加上/dev/。在上面的例子中我的终端设备就是/dev/console。
! n2 p2 }! c/ x: @* l  c% B
" h/ X% J4 G# Hrunlevels:该字段被忽略。也就是说,busybox的init不支持运行级别。
: U; A9 \1 b+ H4 h; W. t' f: \  Y6 o( H2 J! g5 ^. O& E# B
action:该字段用于描述后面process的运行方式。在busybox中,有效的action包括如下几种:
. O4 d$ L6 L9 W' w7 x
5 h+ _$ T; E5 N% v    sysinit——在系统启动阶段,后面的process将被执行。在上面例子中,执行rcS脚本。
" K/ ~( ?- S# l+ e+ x0 ]8 F3 L; Q, r+ f  a! I- z4 k8 e
    respawn——当后面的process进程结束时,该进程又会被重启。
4 \+ z, @( l+ m% }# `3 e
8 A4 }6 x1 d: i6 l& A    askfirst——这个类似于上面的respawn,但是在运行process之前,它会打印" Please press Enter to activate this console.",然后等待用户按下Enter来启动该- B) D5 f$ s0 X' k

4 t/ l, b* f# k                     process。通常askfirst是用于启动终端设备的,如果不想看到这个提示,就像我那样使用respawn,而非askfirst." r) L$ u) o6 h- E

2 [+ a% t4 W* f4 ^6 O    wait——init进程会等待该process执行完毕,然后执行下一项。
2 ]( ~$ }/ E& C3 r) e& V8 y) r( D$ H3 P
    once——process只会执行一次。在上面的例子中,执行telnetd守护进程,-l参数表示连接时,使用login登录。同时执行login程序。6 Y! ^- P; q/ W' H" ~+ Q/ A  d
: T+ ?1 N# A7 q) i/ H; q
    restart——重新启动init进程时执行process.
" t6 q, t3 R1 e* E! o1 g. k1 y- _, Y+ ?6 ^5 Z+ e
     ctrlaltdel——当Ctrl+Alt+Del三个键同时按下后,init进程就会收到SIGINT信号,此时运行process。
5 U2 P/ X3 {# A0 L8 Z% g2 p. M% S1 y, t6 Y  d" {* J
    shutdown——在系统关机的时候执行process。在上面的例子中,在关机时卸载了所有已挂载的设备。
' Q0 a  n  q- v0 H$ A& x! a7 C0 L& p# d- l4 [
process:该字段表示要执行的程序和相应的参数。
, M  ?/ G! s5 u7 M: R8 ?, S4 K
" r4 D  O7 R" e8 \# g
' W4 f9 y/ J- b1 cconsole::respawn:-/bin/sh
  @. \* w+ N. ?( z" ~3 E5 e8 \( \, y$ a8 W9 G- E3 g! n
这句表明:/bin/sh在/dev/console这个tty上被执行。“-”表示该shell为 login shell。
' J3 }% K) `1 q: T" i
4 V* x8 e3 B. T  ~8 Q3 D& W! \# G) N8 d! K8 B
如果没有inittab文件,init进程将使用默认的行为:7 c2 p- Y& I; h- n% C+ l6 z/ F
::sysinit:/etc/init.d/rcS
6 r( [) ~* J' `2 d::askfirst:/bin/sh9 }5 P; h1 h1 H) w& J
::ctrlaltdel:/sbin/reboot, ^; J6 P4 S, x5 V
::shutdown:/sbin/swapoff -a" g$ t2 A6 d) ~& \7 W
::restart:/sbin/init3 U4 }' D2 g" O
  P6 ]- n8 _5 e
+ k- T$ q. q8 a" y$ T2 m- U

) J( {& D3 U! L8 j/ l6 b8 s5 S+ n

该用户从未签到

2#
发表于 2020-6-22 17:55 | 只看该作者
etc配置文件解读——inittab
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-30 05:37 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表