首页IT科技linux进程启动流程(详解Linux系统中的进程初始化配置文件inittab)

linux进程启动流程(详解Linux系统中的进程初始化配置文件inittab)

时间2025-05-01 04:17:32分类IT科技浏览4211
导读:/etc/inittab文件描述了哪些进程开始启动并正常运行。inittab为linux初始化文件系统时init初始化程序用到的配置文件。这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级初始化时运行的命令; 开机、关机、重启对应的命令;各运行级登陆时所运行的命令。...

/etc/inittab文件描述了哪些进程开始启动并正常运行          。inittab为linux初始化文件系统时init初始化程序用到的配置文件                。这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级初始化时运行的命令; 开机          、关机                、重启对应的命令;各运行级登陆时所运行的命令     。

inittab文件中的条目的格式如下:

label:runlevels:action:process 下面分别介绍各个字段

1.label

label 是一个独特的序列,确定了一个条目1-4字符,一些系统只支持2个字符的标签     。对于getty或mingetty等其他login程序项           ,要求label与tty的编号相同               ,否则getty程序将不能正常工作                。

常用标签有:

id 用来定义缺省的init运行的级别

si 是系统初始化的进程

ln 其中的n从1~6,指明该进程可以使用的runlevel的级别

ud 是升级进程

ca 指明当按下Ctrl+Alt+Del时运行的进程

pf 指当UPS表明断电时运行的进程

pr 是在系统真正关闭之前     ,UPS发出电源恢复的信号时需要运行的进程

x 是将系统转入X终端时需要运行的进程

2.runlevels

runlevels 列出了运行级,指定应该采取的动作           。可以指定多个runlevel级别           ,也可以不为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是关闭所有运行的进程并重新启动系统                。

debian6以后默认没有运行/etc/inittab 文件 默认级别为2-5归为一类

3.action

action 字段定义了该进程应该运行在何种状态下               ,描述其后的process的运行方式的     。:

respawn 不管何时终止都重新启动进程

wait 运行进程等待输入运行模式 这个过程将会开始一次运行级别时指定输入和init将等待其终止

once 每一个runlevel级别运行一次 这个过程将执行一次当指定输入runlevel

boot 在系统启动时运行     ,忽略runlevel

bootwait 在系统启动时运行           ,init等待进程完成          。忽略runlevel

ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时运行                ,把SIGINT信号发送给init                。忽略 runlevel

initdefault 不要执行这个进程     ,它用于设置默认runlevel

kbrequest 当init从键盘中收到信号时运行     。这里要求键盘组合符合KeyBoardSigra

off 禁止进入     ,因此该进程不运行

once 每一个runlevel级别运行一次

ondemand 当系统指定特定的运行级别A     、B     、C时运行

powerfail 当init收到SIGPWR信号时运行

powerokwait 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行

powerwait 当收到SIGPWD信号                ,并且init等待进程结束时运行

sysinit 在运行boot或bootwait进程之前运行

4.process

process字段包含init执行的进程          ,该进程采用的格式与在命令行下运行该进程的格式一样     ,因此process字段都以该进程的名字开头,紧跟着是运行时要传递给该进程的参数     。

# /etc/inittab: init(8) configuration.

# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
代码如下:

# The default runlevel.

id:2:initdefault: #表示当前缺省运行级别为2
代码如下:

# Boot-time system configuration/initialization script.

# This is run first except when booting in emergency (-b) mode.

si::sysinit:/etc/init.d/rcS #系统初始化的进程
代码如下:

# What to do in single-user mode.

~~:S:wait:/sbin/sulogin
代码如下:

# /etc/init.d executes the S and K scripts upon change

# of runlevel.

#

# Runlevel 0 is halt.

# Runlevel 1 is single-user.

# Runlevels 2-5 are multi-user.

# Runlevel 6 is reboot.
代码如下:

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

l2:2:wait:/etc/init.d/rc 2

l3:3:wait:/etc/init.d/rc 3

l4:4:wait:/etc/init.d/rc 4

l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

# Normally not reached, but fallthrough in case of emergency.

z6:6:respawn:/sbin/sulogin
代码如下:

# What to do when CTRL-ALT-DEL is pressed. #在启动过程中是否允许按CTRL-ALT-DELETE重启系统

#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
代码如下:

# Action on special keypress (ALT-UpArrow).

#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
代码如下:

# What to do when the power fails/returns.

pf::powerwait:/etc/init.d/powerfail start

pn::powerfailnow:/etc/init.d/powerfail now

po::powerokwait:/etc/init.d/powerfail stop
代码如下:

# /sbin/getty invocations for the runlevels.

#

# The "id" field MUST be the same as the last

# characters of the device (after "tty").

#

# Format:

# :::

#

# Note that on most Debian systems tty7 is used by the X Window System,

# so if you want to add more gettys go ahead but skip tty7 if you run X.

# getty进程来提供虚拟终端设备的服务

1:2345:respawn:/sbin/getty 38400 tty1
代码如下:

#标签字段的值是1,1是设备tty1的数字后缀,tty1与相应的进程相关联                ,该getty进程可以启动的runlevel是2,3,4和5,当该进程终止时          ,init马上就重新启动它                。启动进程的路径名是/sbin/getty,该进程是实现虚拟终端支持的最小版本的getty                ,为tty1提供启动虚拟设备的进程           。

2:23:respawn:/sbin/getty 38400 tty2

#3:23:respawn:/sbin/getty 38400 tty3

#4:23:respawn:/sbin/getty 38400 tty4

#5:23:respawn:/sbin/getty 38400 tty5

#6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)

#

#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

T1:23:respawn:/sbin/getty -L ttyS1 115200 vt100

# Example how to put a getty on a modem line.

#

#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3

5.示例

代码如下:

# Begin /etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc sysinit

l0:0:wait:/etc/rc.d/init.d/rc 0

l1:S1:wait:/etc/rc.d/init.d/rc 1

l2:2:wait:/etc/rc.d/init.d/rc 2

l3:3:wait:/etc/rc.d/init.d/rc 3

l4:4:wait:/etc/rc.d/init.d/rc 4

l5:5:wait:/etc/rc.d/init.d/rc 5

l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty tty1 9600

2:2345:respawn:/sbin/agetty tty2 9600

3:2345:respawn:/sbin/agetty tty3 9600

4:2345:respawn:/sbin/agetty tty4 9600

5:2345:respawn:/sbin/agetty tty5 9600

6:2345:respawn:/sbin/agetty tty6 9600

# End /etc/inittab
声明:本站所有文章               ,如无特殊说明或标注,均为本站原创发布     。任何个人或组织           ,在未征得本站同意时               ,禁止复制                、盗用           、采集     、发布本站内容到任何网站               、书籍等各类媒体平台               。如若本站内容侵犯了原著者的合法权益     ,可联系我们进行处理           。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
在哪里有学电脑的(电脑学习网软件免费下载2022年下载绿色无授权永久免费中文Xshell7是一款业界知名且专业优秀的SSH工具) linux的基本使用方法(linux下4种kill某个用户所有进程的方法)