Linux启动之inittab文件

从接触Linux到现在,期间用过Redhat,Slackware,Kali。不同的发行版本启动文件略有差异,但大体流程都是相同的。按下电源键后首先进行开机自检,然后进入bootloader引导系统。bootloader一般都是Lilo或是Grub,Grub2。选择好系统后便是载入内核文件以及initrd文件。

首先启动的第一个进程是init,init读取/etc/inittab文件,从而产生其他进程。

inittab文件描述了需要在启动是执行的进程。其中的条目的格式如下:

id:runlevels:action:process

id:是独特的标识符,用来表示条目

runlevels:运行级别。0:关机;1:单用户;2-5:多用户;6:重启(此处以Kali为例,其他发行版本略有不同,具体查看文件)

action:描述会被执行的动作

process:执行的进程(命令)

注:runlevels字段可能含有多个运行级别。但如果action字段为sysinit,boot,bootwait则runlevels区域被忽略。

action字段包括:

1、respawn:当进程被结束时会重启

2、wait:当进入指定的运行级别时会执行相关的进程(命令),同时init进程会等待

3、once:当进入指定的运行级别时会执行相关进程

4、boot:在系统启动时会执行

5、bootwait:在系统启动时会执行,同时init进程会等待

6、off:什么都不做

7、initdefault:在系统启动后指定相关运行级别进入

8、sysinit:在系统启动时会执行,它会在boot和bootwait之前执行。

9、powerwait:当关闭电源时会执行,同时init会等待

10、ctrlaltdel:当按下这三个键时执行

init会在/etc/inittab文件中寻找action字段为initdefault的条目,然后执行对应的命令,不过在此之前会先执行action字段为sysinit的命令,因为这是在系统启动时就先执行的。当准备进入的是多用户级别时,action字段为boot和bootwait的命令会先执行。

注:man手册上说如果从多用户进入单用户,在从单用户直接进入多用户并不安全,因为进入单用户时会kill很多在runlevel S启动的进程,最好的办法是重启。

时间: 2024-08-12 04:57:07

Linux启动之inittab文件的相关文章

Linux的/etc/inittab文件中init级别设置成6(重启)或者不支持级别的解决方法

如果不小心将/etc/inittab文件中的init级别设置成6(重启)或者不支持级别,系统就不能正常启动.本博客讲解如何通过Grub来解决这个问题. 1. 在Linux启动过程中,按Esc键进入Grub界面 2. 按e修改当前Linux系统的配置 3. 选择第二行,按e键,并按如下步骤执行 1)在出现的命令行后加1(单用户模式): 2)按Enter键接收操作并后退到当前Linux配置页面: 3)按b重启Linux. 4. 重启后进入Linux系统,修改/etc/inittab文件.将init级

Linux启动简单分析

1. 概述 从Bootloader至init程序主要过程如下 ++++++++++++++ ++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ | | -> | kernel_entry() | -> | start_kernel() -> rest_init() -> kernel_init() | ============== -> ================== -> =

转:嵌入式linux启动时运行的inittab文件

嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多.嵌入式系统下的linux启动过程一般是: 1 在bootloader中制定各种要求传给linux内核的参数,制作ramdisk或ramfs文件系统,并在开机后首先mount上,该文件系统主要负责包含启动运行的配置文件,嵌入式系统主要是/etc/inittab和/etc/rc文件: 2 在init进程启动后,进程首先执行/etc/inittab文件,该文件语法下面介绍,一般包括三项内容就

转-Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

http://blog.chinaunix.net/space.php?uid=10167808&do=blog&id=26042 1)BIOS自检2)启动Grub/Lilo3)加载内核4)执行init进程5)通过/etc/inittab文件进行初始化6)登陆Linux 1)BIOS自检   a)POST(Power On Self Test),对硬件进行检测   计算机在通电后首先由BIOS进行自检,即所谓的POST(Power On Self Test),对硬件进行检测   依据BIO

Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了. 启动第二步--读取MBR 众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息.

ubuntu为什么没有/etc/inittab文件? 深究ubuntu的启动流程分析

最近,因和队友一起做linux开发,因为用的不是同一版本linux(他用arch, 我用ubuntu),再配置上经常就不一样,就如这个inittab文件,于是深究了一下原因: Linux 内核启动 init ,init进程ID是1,是所有进程的父进程,所有进程由它控制. Ubuntu 的启动由upstart控制,自9.10后不再使用/etc/event.d目录的配置文件,改为/etc/init. 查看当前的运行级别,Ubuntu 桌面默认是2. ? 1 runlevel Ubuntu 的系统运行

linux中inittab文件详解

init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没有固定的信息来表示runlevel,它纯粹是一种软件结构.init和inittab是runlevel影响系统状态的唯一原因

【转】linux中inittab文件详解

原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/inittab.inittab是一个不可执行的文本文件,它有若干行指令所组成. 理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬

Linux下inittab文件详解

/etc/inittab文件详解 Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动kernel-->启动init进程 我们看到,Linux系统启动的最后是启动init进程,而init进程是怎么工作的呢?init进程就是根据/etc/inittab这个文件来在不同的运行级别启动相应的进程或执行相应的操作. /etc/inittab这个文件中定义的登记项都是以:隔开的四个段,即: id:ru