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脚本/命令。
实现自动登录:
vi /etc/inittab
添加6a:2345:respawn:/sbin/mingetty tty10 --autologin xl
然后执行init q ,之后按ctrl+Alt+10,就可以看到xl自动登录了, 用exit退出后, 还会自动登录
inittab 解析的更多相关文章
- busybox中的inittab解析
init进程是由内核启动的第一个(也是唯一一个)用户进程(进程ID为1),是所有进程的祖先.然后init进程根据配置文件决定启动哪些程序,init是后续所有进程的发起者. 用busybox制作的文件系 ...
- busybox启动流程简单解析:从init到shell login
关键词:kernel_init().init.inittab.wait/waitpid.fork/vfork.setsid().execvp/execlp.dup2等等. 由于遇到一系列定制,从ini ...
- BusyBox init工作流程
linux启动完成后,运行由Busybox产生的init进程. /sbin/init是系统启动的第一个用户进程,pid=1.init的工作是根据/etc/inittab脚本来进行系统的初始化工作,关机 ...
- busybox下inittab中runlevel解析
Order of scripts run in /etc/rc?.d ================================== 0. Overview. All scripts execu ...
- linux系统初始化——inittab文件解析
inittab文件解析 inittab配置文件每行的基本格式如下. id:runlevels:action:process 其中某些部分可以为空,下面我们逐一介绍. 1.id 1-2个字符,配置行的唯 ...
- Linux入门:运行级别解析
Linux入门:运行级别解析 一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别: www.2cto.com ...
- /etc/inittab文件详解
/etc/inittab由/sbin/init程序解析调用,用于系统初始化,/sbin/init可参考源码busybox中init.c的实现方式. 原址如下: http://leejia.blog.5 ...
- rc.sysinit 解析
$# :它可抓出 positional parameter 的數量,即脚本后面的参数有几个 $@和$*表示全部参数,但不包含脚本名,即$0,如果在command line上跑 my.sh p1 “p2 ...
- 内核启动文件系统后第一个执行的文件(inittab启动脚本分析)
Linux 开机脚本启动顺序: 第一步:启动内核 第二步:执行init (配置文件/etc/inittab) 第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d ...
随机推荐
- vscode 中使用php-cs-fixer和PHP Formatter 插件规范化PHP代码
什么是PHP-CS-Fixer? 它是php-fig组织定义的PHP代码规范,良好的代码规范可以提高代码可读性,团队沟通维护成本 使用它可以按照指定的规范格式化您的PHP代码,此工具不仅可 ...
- 基于Python3.6使用Django框架连接mysql数据库的驱动模块安装解决办法
解决办法1 使用PyMySQL模块,直接使用pip install pymysql即可. 参考文章:https://www.cnblogs.com/wcwnina/p/8719482.html 原文内 ...
- MySql之插入操作
一:插入一行数据 INSERT INTO tableName(列名...) VALUES(对应列名的值); 二:插入多行 INSERT INTO tableName(列名...) VALUES(对应列 ...
- 【H5动画】谈谈canvas动画的闪烁问题
一般来说,在H5开发中,使用canvas往往只是为了展示一些简单的图表或者简单短小的动画,很少考虑到有闪烁的问题. 最近,在手机QQ魔法表情的项目中,就遇到了奇葩的闪烁问题. 这里说的闪烁,是指动画刚 ...
- ubuntu 12.04启用休眠
x86-64 与EM64区别 EM64T全称是Extended Memory 64 Technology(64位内存技术扩展技术.Intel声称“EM64T技术是Intel对IA32平台一系列技术革新 ...
- RabbitMQ ——“Hello World”
介绍 RabbitMQ是一个消息实体服务(broker):它接收及转发消息.你可以把它想象成一个邮局:当你把你想要寄送的邮件放进邮箱里时,你能够确信邮局的派送员最终会把你的这封邮局送到这信的收件者手中 ...
- OpenCV 学习笔记 04 深度估计与分割
本章节主要是使用深度摄像头的数据来识别前景区和背景区,这样就可以分别对前景和背景做不同的处理. 1 创建模块
- 适合初学者的python实际例子
最近在github上发现了一个有意思的项目,很适合初学者学习python代码. 学习一门语言刚开始的时候是很枯燥的,各种概念语法以及无聊的打印都会让人失去更进一步学习的动力. 很多同学在学习了一段时间 ...
- 使用Nginx实现灰度发布(转)
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ...
- DIOCP-DIOCPv5的处理能力
今天和BB讨论了下DiocpV5的单连接处理能力.一直没有做过这方面的测试,稍微试了一下. 把开始的时候客户端Sleep(10),为了测试处理能力,把Sleep(10)去掉了,20秒(实际应该算17秒 ...