`
xitong
  • 浏览: 6158032 次
文章分类
社区版块
存档分类
最新评论

init 进程和inittab 引导指令

 
阅读更多

init 进程和inittab 引导指令

init 进程是系统所有进程的起点,内核在完成内核引导以后,即在本线程(进程)空间内加载init 程序,它的进程号是1。init 程序读取/etc/inittab 文件作为其行为指针,根据initab 描述文件的内容建立相应的进程。initab 文件中描述了系统默认的运行级别,运行rc 启动脚本,进行用户的登录,X Window 登录等工作。Initab 文件的主体部分如下:
# 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 have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm –nodaemon

具体的内容在大多数的Linux书籍中有详细的介绍;开发人员也可以使用man initab命令查看在线帮助手册,下面只作简单介绍:
inittab是以行为单位的描述性(非执行性)文本,每一个指令行都具有以下格式:
id:runlevel:action:process

其中:

  • id 为入口标识符,
  • runlevel 为运行级别,
  • action 为动作代号,
  • process 为具体的执行程序。
id 一般要求4 个字符以内,对于getty 或其他login 程序项,要求id 与tty 的编号相同,否则getty 程序将不能正常工作。runlevel 是init 所处于的运行级别的标识,一般使用0-6 以及S 或s。0、1、6 运行级别被系统保留,0 作为shutdown 动作,1 作为重

启至单用户模式,6 为重启;S 和s 意义相同,表示单用户模式,且无需inittab 文件,因此也不在inittab 中出现,实际上,进入单用户模式时,init 直接在控制台(/dev/console)上运行/sbin/sulogin。在一般的系统实现中,都使用了2、3、4、5 几个级别,在Redhat系统中,2 表示无NFS 支持的多用户模式,3 表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5 表示XDM 图形登录方式。7-9 级别也是可以使用的,传统的Unix 系统没有定义这几个级别。runlevel 可以是并列的多个值,以匹配多个运行级别,对大多数action 来说,仅当runlevel 与当前运行级别匹配成功才会执行。initdefault 是一个特殊的action 值,用于标识缺省的启动级别;当init 由核心激活以后,它将读取inittab 中的initdefault 项,取得其中的runlevel,并作为当前的运行级别。如果没有inittab 文件,或者其中没有initdefault 项,init 将在控制台上请求输入 runlevel。

sysinit、boot、bootwait 等action 将在系统启动时无条件运行,而忽略其中的runlevel,其余的action(不含initdefault)都与某个runlevel 相关。各个action 的定义在inittab 的man 手册中有详细的描述。


下面是对一个initab 文件的简单说明:
id:3:initdefault:
#表示当前缺省运行级别为3--完全多任务模式;
si::sysinit:/etc/rc.d/rc.sysinit
#启动时自动执行/etc/rc.d/rc.sysinit 脚本
l3:3:wait:/etc/rc.d/rc 3
#当运行级别为3 时,以3 为参数运行/etc/rc.d/rc 脚本,init 将等待其返回
0:12345:respawn:/sbin/mingetty tty0
#在1-5 各个级别上以tty0 为参数执行/sbin/mingetty 程序,打开tty0 终端用于
#用户登录,如果进程退出则再次运行mingetty 程序
x:5:respawn:/usr/bin/X11/xdm -nodaemon
#在5 级别上运行xdm 程序,提供xdm 图形方式登录界面,并在退出时重新执行。
分享到:
评论

相关推荐

    ARM_Linux启动分析.pdf

    五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash 附:XDM方式登录 本文以Redhat 6.0 Linux 2.2.19 for Alpha/AXP为平台,描述了从开机到登录的 Linux 启动全过程。该文对i386平台同样适用。 ...

    Linux启动过程综述

    一.Bootloader 二.Kernel引导入口 三.核心数据结构初始化--内核引导第一部分 四.外设初始化--内核引导第二部分 五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash

    RED HAT LINUX 6大全

    6.2.1 init和/etc/inittab 90 6.2.2 /etc/inittab和系统状态 92 6.3 linuxconf与管理服务 96 6.4 关闭Linux系统 98 6.4.1 shutdown 98 6.4.2 halt与reboot 99 6.5 当系统崩溃时 100 6.5.1 以root身份运行 100 6.5.2 ...

    LINUX操作系统(电子教案,参考答案)

    5.5.3 init与inittab 112 5.5.4 Shell 114 小结 114 习题五 115 一、思考题 115 二、选择题 115 三、上机操作 115 第6章 用户管理 116 6.1 用户账号的设置 116 6.1.1 增加用户 116 6.1.2 /et/passwd文件与/etc/...

    Linux操作系统基础教程

    第三讲 Linux下的网络服务,配置问题和常用工具.................................................................24 一.Linux下的网络服务.....................................................................

    linux目录架构

    /etc/X11 X Window的配置文件,xorg.conf 或 XF86Config 這兩個 X Server 的設定檔 /etc/fstab 记录开机要mount的文件系统 /etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel /etc/...

    Squid中文权威指南

    5.6.2 init.d和rc.d 5.6.3 /etc/inittab 5.7 chroot环境 5.8 停止squid 5.9 重配置运行中的squid进程 5.10 滚动日志文件 第6章 访问控制 6.1 访问控制元素 6.1.1 一些基本的ACL类型 6.1.2 ACL类型 ...

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

    2.2 ARM指令集................................................................................................................... 13 2.2.1 ARM微处理器的指令集概述..........................................

Global site tag (gtag.js) - Google Analytics