【Linux笔记】Linux中inittab剖析
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剖析的更多相关文章
- 循环渐进linux笔记——linux系统基本机构
第一篇 linux的基础介绍 1.linux是一个支持多用户多任务的超棒系统,它具由六个字符控制台,每个控制台都能独立作业,不会互相影响,如果需要在几个字符控制台互相切换的话可以用组合键 ctrl+a ...
- Linux笔记-Linux的命令初解1
我是一个Linux的初学者,经验肯定没有大牛们那么全面,但是我很想把自己在学习过程中的所有所学和一些自己的感悟写下来. 首先我主要看的书为<鸟哥的私房菜>,这是一本非常棒的书,但是你会发现 ...
- Linux笔记-Linux下编辑器的简介
在整个linux中,我们使用最多的编译器真的vim了,全名我也不说了,没有多大意义,我们就是通过它来写我们的代码的.如果你有强迫症的话,那么选择使用gedit我也是没话说的啦! 话说其实我也在使用一些 ...
- Linux笔记-Linux命令初解2
在看linux过程中,文件属性管理是一个难点,因而作为初学者的我来说,我直接将其放在后面来慢慢研究,因而我个人觉得先学习后面一些知识点之后,回过头来将一些你所不懂的去解透,这是极好的意见事情.对了,我 ...
- Linux笔记——linux下的语音合成系统
1.festival 安装:sudo apt-get install festival 使用: (SayText "Hello!") 2. espeek(ubuntu 自带) # ...
- linux中inittab文件详解
init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序. init程序需要读取配置文件/etc/ ...
- 【转】linux中inittab文件详解
原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...
- 【Linux笔记】Linux目录结构
[Linux笔记]Linux目录结构 本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...
- 【Linux】Linux中常用操作命令
博客已转移,请借一步说话,http://www.weixuehao.com/archives/25 Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linu ...
随机推荐
- 2015526 《Java程序设计》实验二实验报告
2015526 <Java程序设计>实验二实验报告 一.单元测试和TDD 用程序解决问题时,要学会写以下三种代码: 伪代码 产品代码 测试代码 正确的顺序应为:伪代码(思路)→ 测试代码( ...
- 20155307 2016-2017 《Java程序设计》第三次实验报告
(一)敏捷开发与XP 敏捷开发是一种以人为核心.迭代.循序渐进的开发方法."敏捷流程"是一系列价值观和方法论的集合.从2001年开始,一些软件界的专家开始倡导"敏捷&qu ...
- 20155318 《Java程序设计》实验二 (Java面向对象程序设计)实验报告
20155318 <Java程序设计>实验二 (Java面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...
- c#获取已安装的所有NET版本
/// <summary> /// 获取已安装的所有NET版本 /// </summary> /// <returns></returns> publi ...
- day 2 异常传递 ,抛出
1.异常的传递 def test1(): print("---test1--") print(num) print('---test1 over---') def test2(): ...
- 修改索引名称(mysql)
MySQL修改索引名称. 对于MySQL 5.7及以上版本,可以执行以下命令: ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_inde ...
- c# IE浏览器清除缓存没用
再想买更新JS和css文件之后, 使用 internet 里面的删除选项 发现样式和事件还是没用变 最终发现 需要 按 f12 找到这个清缓存才正常解决问题
- XAF-如何在详细视图界面显示按钮(含示例项目下载)
默认情况下,指定了按钮的Category后,将在对应的按钮容器显示按钮.有时候,我们需要将按钮显示在详细视图中. 本示例源码 创建一个控制器,并填加按钮.设置好了所有ID.Caption后,给Cate ...
- python全栈开发-面向对象-进阶2
python_day_19 今日主要内容: 1.抽象类,接口类 2.多态 3.封装 1.抽象类,接口类 python 没有接口这个概念接口类,抽象类: 制定一个规范. 举个栗子:你的项目经理提一个需求 ...
- python全栈开发-前方高能-内置函数2
python_day_15 一.今日主要内容 1. lambda 匿名函数 语法: lambda 参数:返回值 不能完成复杂的操作 2. sorted() 函数 排序. 1. 可迭代对象 2. key ...