Linux完成内核(Kernel)引导后,会由init初始化进程调用/etc/inittab配置文件(ps -aux | less,init进程号为始终为1,是所有系统进程的起点,init进程也有一个PID为0的父进程Kernel Scheduler,该进程用来分配CPU时间和进行进程间切换。)

/etc/inittab文件格式:id:run-levels:action:process,共包含4项,用冒号分隔,其中某些部份可以为空,各项详细解释如下:

id

标识符,一般为两位字母或数字,该标识符唯一,在配置文件中不能重复。

run-level

指定系统运行级,即执行登记项的init级别。用于指定相应的登记项适用于哪一个运行级,即在哪一个运行级中被处理。如果该字段为空,那么相应的登记项将适用于所有的运行级。在该字段中,可以同时指定一个或多个运行级,其中各运行级分别以数字0 1 2 3 4 5 6或字母a、b、c 表示,且无需对其进行分隔。

Linux有7个运行级,如下:

0-halt 关机,让init关闭所有进程并关机

1-Single user mode 单用户字符界面,通常又称为s或S

2-Multiuser,without NFS 不具备网络文件系统功能的多用户字符界面

3-Full multiuser mode 具备网络文件系统功能的多用户字符界面

4-unused 保留不用

5-X11 具备网络功能的图形用户界面

6-reboot 关闭所有运行的进程并重新启动系统

除此之外还有ABC三个运行级别,但在Linux都没有意义。

action

指定运行动作,用于指定init(M)命令或进程对相应进程(在“process”字段定义)所实施的动作,有以下几种:

行为 描述
respawn
 一旦第4项指定的process命令中止,便重新运行该命令。
wait
执行第4项指定的process,并等其结束后再运行其它命令。
once
执行第4项指定的process,不等待它执行完成,继续运行其它命令。
boot
不论在哪个执行等级,系统启动时都会运行第4项指定的process。
bootwait
不论在哪个执行等级,系统启动时都会运行第4项指定的process,且一直等它执行完备。
off
关闭任何动作,相当于忽略该配置行。
ondemand
进入ondemand执行等级时,执行第4项指定的process。
initdefault
系统启动后进入的执行等级,该行不需要指定process。
sysinit
不论在哪个执行等级,系统会在执行boot及bootwait之前执行第4项指定的process。
powerwait
当系统的供电不足时执行第4项指定的 process,且一直等它执行完毕。
powerokwait
当系统的供电恢复正常时执行第4项指定的process,且一直等它执行完毕。
powerfailnow
当系统的供电严重不足时执行第4项指定的process。
powerfail
当出现电源错误时执行第4项指定的process命令,不等待其结束。
ctrlaltdel
当用户按下【Ctrl+Alt+Del】时执行第4项指定的 process。
kbrequest
当用户按下特殊的组合键时执行第4项指定的process,此组合键需在keymaps文件定义。

process

指定要运行的Shell脚本/命令。

/***************************隐藏部份******************************* /

最先运行的服务存放在/etc/rc.d目录下,启动脚本位于目录/etc/rc.d/init.d中,这些脚本的是被ln命令连接到/etc/rc.d/rc[0-6].d。

在init进程读取/etc/inittab的过程的时候,首先会判断系统缺省的运行级别initdefault(/etc/inittab),

/etc/rc.d/rc.sysinit,系统初始化操作

脚本/etc/rc.d/rc.sysint,不管系统是何级别(0-6),都会执行该脚本,在每次系统启动时运行一次。完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。

判断默认的运行级别,调味用/etc/rc.d/rc脚本,执行相应运行级别目录中的服务程序,完成相应运行级别的初始化设置。

如果默认的运行级别为3(N:0-6),则如下:

如上文件列表中的文件:

以S开头的文件,S-Start,表示启动该脚本,以K开头的文件,K-Kill,表示关闭该脚本。

数字0-x,表示脚本启动的顺序,数字越小,越优先启动。

【Linux笔记】Linux中inittab剖析的更多相关文章

  1. 循环渐进linux笔记——linux系统基本机构

    第一篇 linux的基础介绍 1.linux是一个支持多用户多任务的超棒系统,它具由六个字符控制台,每个控制台都能独立作业,不会互相影响,如果需要在几个字符控制台互相切换的话可以用组合键 ctrl+a ...

  2. Linux笔记-Linux的命令初解1

    我是一个Linux的初学者,经验肯定没有大牛们那么全面,但是我很想把自己在学习过程中的所有所学和一些自己的感悟写下来. 首先我主要看的书为<鸟哥的私房菜>,这是一本非常棒的书,但是你会发现 ...

  3. Linux笔记-Linux下编辑器的简介

    在整个linux中,我们使用最多的编译器真的vim了,全名我也不说了,没有多大意义,我们就是通过它来写我们的代码的.如果你有强迫症的话,那么选择使用gedit我也是没话说的啦! 话说其实我也在使用一些 ...

  4. Linux笔记-Linux命令初解2

    在看linux过程中,文件属性管理是一个难点,因而作为初学者的我来说,我直接将其放在后面来慢慢研究,因而我个人觉得先学习后面一些知识点之后,回过头来将一些你所不懂的去解透,这是极好的意见事情.对了,我 ...

  5. Linux笔记——linux下的语音合成系统

    1.festival 安装:sudo apt-get install festival 使用: (SayText "Hello!") 2. espeek(ubuntu 自带) # ...

  6. linux中inittab文件详解

    init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/ ...

  7. 【转】linux中inittab文件详解

    原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...

  8. 【Linux笔记】Linux目录结构

    [Linux笔记]Linux目录结构   本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...

  9. 【Linux】Linux中常用操作命令

    博客已转移,请借一步说话,http://www.weixuehao.com/archives/25 Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linu ...

随机推荐

  1. 2017-2018-1 20155318《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155318<信息安全技术>实验二--Windows口令破解 一.实验原理 口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对 ...

  2. noone is not in the sudoers file ubuntu

      Login as root or su to get root prompt type visudo an editor will open find a line says root ALL=( ...

  3. DSP6748学习笔记-190116

    1. PSC是什么?电源和睡眠控制器.一个PSC模块由一个全局PSC和一组本地PSC组成,那么又是什么? PSCModuleControl(SOC_PSC_0_REGS, , PSC_POWERDOM ...

  4. 无旋treap的简单思想以及模板

    因为学了treap,不想弃坑去学splay,终于理解了无旋treap... 好像普通treap没卵用...(再次大雾) 简单说一下思想免得以后忘记.普通treap因为带旋转操作似乎没卵用,而无旋tre ...

  5. xgboost算法教程(两种使用方法)

    标签: xgboost 作者:炼己者 ------ 欢迎大家访问我的简书以及我的博客 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! ------ ...

  6. Appium 运行脚本报错InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported for (转)

    现象:Appium运行脚本报错InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported f ...

  7. Phaser3游戏三角学应用--一只跟随屏幕点击位置游动的鱼

    fish fish 资源图: fish-136x80.png undersea-bg.png 代码 var config = { type: Phaser.AUTO, parent: 'iFiero' ...

  8. JavaScript学习笔记(一)——JS速览

    第一章 JS速览 1 限制时间处理事件 <script> setTomeout(wakeUpUser,5000); function wakeUpUser() { alert(" ...

  9. 译 - Cassandra 数据建模的基本规则

    Basic Rules of Cassandra Data Modeling 原文地址:http://www.datastax.com/dev/blog/basic-rules-of-cassandr ...

  10. PHP使用static关键字声明静态属性和静态方法

    PHP使用static关键字声明静态属性和静态方法 在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法. 静态属性和静态方法不需要在被类实例化的情况下就可以直接使用. ...