linux init进程和配置文件inittab
来源:互联网 发布:nba2kol刷球星软件 编辑:程序博客网 时间:2024/06/02 12:53
Linux完成内核引导之后启动的第一个进程,进程id为1,也是系统所有进程的父进程。
inittab:
init进程的配置文件,由若干条指令组成。文件描述在系统引导及通常的操作期间, 都启动哪些进程 (比如/etc/init.d/boot, /etc/init.d/rc, getty 等等)。
1、每一个条目有如下的格式:
id:runlevels:action:process
共四个字段,由冒号隔开,每个字段的意义和取值如下:
-->id:inittab文件中条目的唯一标识
限于1-4 个任意字符构成的字符串 (如果是用版本号小于 5.2.18 或a.out 的库编译生成的 sysvinit程序, 则仅限于 2 个字符).
###对于getty或mingetty等其他login程序项,要求id与tty的编号相同,否则getty程序将不能正常工作。
某些特定的标签是常用的,在Red Hat Linux中使用的标签是:
id 用来定义缺省的init运行的级别
si 是系统初始化的进程
ln 其中的n从1~6,指明该进程可以使用的runlevel的级别
ud 是升级进程
ca 指明当按下Ctrl+Alt+Del时运行的进程
pf 指当UPS表明断电时运行的进程
pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程
x 是将系统转入X终端时需要运行的进程
-->runlevels:列出发生指定动作的运行级
可以取0至6.
进行级别:
Runlevel 0: 是让init关闭所有进程并终止系统。
Runlevel 1: Single模式,是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件
Runlevel 2: 是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。
Runlevel 3: 是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。
Runlevel 4: 一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但使用该系统可以实现一些特定的登录请求。
Runlevel 5: 是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择
Runlevel 6: 是关闭所有运行的进程并重新启动系统。
-->action:描述要发生的动作
respawn 重生的意思,指该进程只要终止就立即重新启动 (如 getty).
wait 只要进入指定的运行级就启动本进程, 并且init将等待其返回
once 只要进入指定的运行级就启动一次本进程.
boot 在系统引导期间执行本进程. <runlevels 域被忽略>
bootwait 在系统引导期间执行本进程. 并且init等待该进程的结束( 如/etc/rc). <runlevels 域被忽略>
off 禁止进入,因此该进程不运行
ondemand 当系统指定特定的运行级别A、B、C时运行
initdefault 不要执行这个进程,它用于设置系统引导完成后进入的运行级, 如果不存在这样的条目, init 就会在控制台询问要进入的运行级. <process 域被忽略>
sysinit 系统引导期间执行此进程. 本进程会在boot 或bootwait 条目之前得到执行. <runlevels 域被忽略>
powerwait 当init收到SIGPWR信号时运行,通常在有进程把 UPS 和计算机相连时通知
init 进程, Init 在继续其它工作之前要等待此进程结束.
powerfail 类似 powerwait, 但是init 不等待此进程完成.
powerokwait 在init 收到电源已经恢复的通知后立即执行此进程.
powerfailnow 本进程在 init 被告知 UPS 电源快耗尽同时外部电源失败 (无效) 时被执行. (假设 UPS 和监视进程能够发现这样的情况).
ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。<忽略runlevel>
kbrequest 本进程在 init 收到一个从控制台键盘产生的特殊组合按键信号时执行.
-->process:进行的进程
该进程采用的格式与在命令行下运行该进程的格式一样,因此process字段都以该进程的名字开头,紧跟着是运行时要传递给该进程的参数。
如果 process 域以一个‘+’开头, init 不会在utm和wtmp文件中为此进程记帐.
2、init加载步骤:
1> si::sysinit:/etc/rc.d/rc.sysinit
它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,
rc.sysinit是每一个运行级别都要首先运行的重要脚本。它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
2>在rc.sysinit执行后,将返回init继续其它的动作,通常接下来会执行/etc/rc.d/rc启动对应运行级别的守护程序。
以运行级别5为例,init将执行配置文件inittab中的以下这行:l5:5:wait:/etc/rc.d/rc 5
这一行表示以5为参数运行/etc/rc.d/rc,/etc/rc.d/rc是一个Shell脚本,它接受5作为参数,去执行/etc /rc.d/rc5.d/目录下的所有的rc启动脚本,/etc/rc.d/rc5.d/目录中的这些启动脚本实际上都是一些链接文件(chkconfig命令就是通过修改这些符号连接从而实现修改服务的运行级别),而不是真正的rc 启动脚本,真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下。而这些rc启动脚本有着类似的用法,它们一般能接受start、stop、restart、status等参数。
3> 建立终端
rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。init接下来会打开6个终端,以便用户登录系统。通过按Alt+Fn(n对应1-6)可以在这6个终端中切换。
在inittab中的以下6行就是定义了6个终端:
x:2345:respawn:/sbin/mingetty ttyx
4> 登录系统,启动完成
- linux init进程和配置文件inittab
- init 进程和inittab 引导指令
- init 进程和inittab 引导指令
- 第一只进程init及配置文件/etc/inittab与runlevel
- init和/etc/inittab
- init进程及inittab文件
- Linux配置文件/etc/inittab
- linux进程idle和init
- linux启动第一个应用程序init && init启动android过程解析 && init.rc与inittab的关系 && android property和linux 环境变量
- linux的启动配置文件inittab文件详解
- linux的启动配置文件inittab文件详解
- 熟悉linux核心配置文件inittab、passwd
- Linux-Android系统启动之INIT进程和system v init
- Linux守护进程(init.d和xinetd)
- Linux守护进程(init.d和xinetd)
- Linux守护进程(init.d和xinetd)
- Linux守护进程(init.d和xinetd)
- Linux守护进程(init.d和xinetd)
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- C#作为上位机,控制51单片机(下位机),串口通信源程序
- 数据结构之栈的应用——四则表达式求值
- 画段弧线
- Unity学习之切水果游戏
- linux init进程和配置文件inittab
- calabash-ios "No frameworks Group found. Aborting."
- CentOS---网络配置详解
- DSP .c 和.h文件架构
- Linux 常用命令(转)
- 卡尔曼滤波器程序解析(2)
- Spring Cache缓存介绍
- 黑马程序员——Java基础---集合类(上)
- HDU_5463 Clarke and minecraft