`
pengcc
  • 浏览: 33119 次
  • 性别: Icon_minigender_1
  • 来自: Mars
最近访客 更多访客>>
社区版块
存档分类
最新评论

Linux中inittab 文件解析

阅读更多

init的进程号是1,从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序,。
init
程序需 要读取配置文件/etc/inittabinittab是一个不可执行的文本文件,它有若干行指令所组成。在Redhat系统中,inittab的内容 如下所示(“###"开始的中注释为笔者增加的)
  
# inittab This file describes how the INIT process should set up

# Default runlevel. The runlevels used by RHS are:
# 
0 - halt (Do NOT set initdefault to this)
# 
1 - Single user mode
# 
2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)
# 
3 - Full multiuser mode
# 
4 - unused
# 
5 - X11
#  6 - reboot (Do NOT set initdefault to this)

理解Runlevel
runlevel
用来表示在init进程结束之后的系统状态,在系统的硬件中没有固定的信息来表示runlevel,它纯粹是一种软件结构。init inittabrunlevel影响系统状态的唯一原因。在上述例子中inittab文件起始阶段的注释主要用来描述runlevel
Runlevel 0
是让init关闭所有进程并终止系统。
Runlevel 1
是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。
Runlevel 2
是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。
Runlevel 3
是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。
Runlevel 4
一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但使用该系统可以实现一些特定的登录请求。
Runlevel 5
是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户如果需要这样,也可以通过在runlevel启动来实现该方案。
Runlevel 6
是关闭所有运行的进程并重新启动系统。*/
###表示当前缺省运行级别为5(initdefault)
id:5:initdefault: /*启动后进入图形界面,设为3则进入字符终端界面*/
###启动时自动执行/etc/rc.d/rc.sysinit脚本(sysinit)

inittab文件中以#开头的所有行都是注释行。注释行有助于用户理解inittab文件,inittab文件中的值都是如下格式:
label:runlevel:action:process

label1~4个字符的标签,用来标示输入的值。例如:

id 用来定义缺省的init运行的级别
si
是系统初始化的进程
ln
其中的n1~6,指明该进程可以使用的runlevel的级别
ud
是升级进程
ca
指明当按下Ctrl+Alt+Del时运行的进程
pf
指当UPS表明断电时运行的进程
pr
是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程
x
是将系统转入X终端时需要运行的进程

runlevel指定runlevel的级别。可以指定多个runlevel级别,也可以不为runlevel字段指定特定的值。

action定义了该进程应该运行在何种状态下。例如

boot 在系统启动时运行,忽略runlevel
bootwait
在系统启动时运行,init等待进程完成。忽略runlevel
ctrlaltdel
Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略 runlevel
initdefault
不要执行这个进程,它用于设置默认runlevel
kbrequest
init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档)
off
禁止进入,因此该进程不运行
once
每一个runlevel级别运行一次
ondemand
当系统指定特定的运行级别ABC时运行
powerfail
init收到SIGPWR信号时运行
powerokwait
当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行
powerwait
当收到SIGPWD信号,并且init等待进程结束时运行
respawn
不管何时终止都重新启动进程
sysinit
在运行bootbootwait进程之前运行
wait
运行进程等待输入运行模式

process字段包含init执行的进程,该进程采用的格式与在命令行下运行该进程的格式一样,因此process字段都以该进程的名字开头,紧跟着是 运行时,紧跟着是运行时要传递给该进程的参数。比如/sbin/shutdown -t3 -r now,该进程在按下Ctrl+Alt+Del时执行,在命令行下也可以直接输入来重新启动系统。为具体的执行程序。程序后面可以带参数。

分享到:
评论

相关推荐

    Linux进程init主配置文件etcinittab的解析IT知识

    Linux进程init主配置文件etcinittab的解析IT知识

    Linux操作系统开机自行启动项目详细解析

    LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。内核在内存中解压缩之后,就可以开始运行了。...init读它的配置文件/etc/inittab,决定需要启动的运行级别(Runlevel)。

    LINUX系统管理白皮书

    6.2 通过init启动getty:/etc/inittab文件 232 6.3 运行级别 233 6.4 /etc/inittab中的特殊配置 234 6.5 在单用户模式下引导 234 第7章 登录和注销 236 7.1 通过终端登录 236 7.2 通过网络登录 237 7.3 登录...

    RED HAT LINUX 6大全

    12.5 在/etc/passwd文件中使用NISisms 232 12.6 使用网络组 232 12.7 解决问题的一些技巧 233 12.8 小结 233 第13章 网络文件系统 235 13.1 NFS安装 235 13.2 启动和停止NFS守护程序 236 13.3 NFS状态 236 13.4 配置...

    Linux管理员指南

    核心级系统服务 121 9.1 init服务 121 9.1.1 /etc/inittab文件 121 9.1.2 telinit命令 122 9.2 inetd进程 123 9.2.1 etc/inetd.conf文件 123 9.2.2 安全性与inetd.conf文件 124 9.3 syslogd...

    Linux常用的命令。。。。。

    当other中有x位有t 权限 除文件拥有者,root外对directory内的file 不可删,但可以写入 4 suid 2 sgid 1 sbit chmod u+s directory g+s o+t 有效用户组:排第一位的组 groups user 查看user的组 改有效用户组...

    LINUX系统开发技术详解---基于ARM

    3.2.3 Makefile文件中变量的使用.............................................................................. 51 3.3 二进制代码工具的使用...................................................................

Global site tag (gtag.js) - Google Analytics