linux里init4代表什么,索罗学习linux常用基本命令【4】init

7、切换执行等级: init

init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。

内核自行启动后,运行的第一个用户进程就是init,所以,init的进程号始终是1。

init一共分为7个级别,这7个级别的所代表的含义如下

0:halt或者shutdown

1:单用户模式,只root用户进行维护

2:多用户模式,不能使用NFS(Net File System)

3:完全多用户模式(标准的运行级别)

4:安全模式

5:图形化(即图形界面)

6:重启(reboot)

根据上述的init级别含义,知道了initdefault设置不能为0和6了吧,要不然系统一启动就关机或重启,那是没得玩的了。。。

(

那么init的老巢在哪里呢,find / -name init 一下看看:

b3416e3ddb9b3690941cbe3182af3119.png哈哈,init还是无处不在滴,

/sbin/init。这个地方是ninit的老巢 !

2b55eb15ff01daa2af4530ff3d9f22f1.png

如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

###############################################################################

下面我们通过查看/etc/rc.d/中的rc*.d的文件来对比理解。。

rc.d 是 runlevel control directory 的缩写。

大多数的Linux 发行版本中,启动脚本都被放在/etc/rc.d/init.d。

这些脚本被ln 命令来连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)

init 0,对应的系统会运行,/etc/rc.d/rc0.d里指定的程序。

init 1,对应的系统会运行,/etc/rc.d/rc1.d里指定的程序。

.。。。。。。。

init 6,对应的系统会运行,/etc/rc.d/rc6.d里指定的程序。

下面看看rc.d下面的目录有啥内涵吧:

e2b3297d622f47a9a968086b1055c4c3.png

说明:

/etc/rc.d/init.d

该文件夹包含所有服务在各个运行等级中的全部启动脚本。一般来说,它们都是标准的shell脚本,遵守最基本的标准。每个脚本最少接受两个参数start和stop,它们分别代表启动和停止服务(如网页服务)。除此之外,init脚本通常还会接受一些额外的选项,如restart(重启服务器)、status(返回服务当前状态)、reload(告知服务从配置文件中重新载入配置)以及force-reload(强制服务重载它的配置)。当用不带参数的方式运行脚本的时候,一般应该返回一个它会接受的参数列表。

/etc/rc.d/rc0.d~/etc/rc.d/rc6.d

这些文件夹分别包含每个运行等级对应的init脚本。在实际使用中,它们一般通过符号链接到/etc/init.d文件夹下的实际文件。不过要注意的是,这些文件夹下的init脚本都有一些特别的名字,命名都以S(start)、K(kill)或D(disable)开头,后面跟一个数字。当init进入一个运行等级的时候,它会按照数字顺序运行所有以K开头的脚本并传入stop参数,除非对应的init脚本在前一个运行等级中没有启动。然后init按照数字顺序运行所有以S开头的脚本并传入start参数。任何以D开头的init脚本都会被忽略—这让你可以在指定的运行等级禁止一个脚本,或者你也可以仅仅移除全部符号链接。所以如果你有两个脚本,S01foo和S05bar,init首先会运行S01foo start,当它进入特定的运行等级后再执行S05bar start。

/etc/rc.d/rc.local

并非所有的发行版都使用了rc.local,通常它是一个留给用户修改的shell脚本。一般会在init进程结束的时候运行它,所以你可以在这里放一些想要运行的额外脚本,而不用再创建自己的init脚本。

/etc/rc.d/rc.sysinit

/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

/etc/rc.d/rc

当运行级别改变时,负责启动/停止各种服务。

##############################################################################

先看看rc0.d 吧: ls /etc/rc.d/rc0.d

3ff2f3411d316d531bae2681d0ad1cf5.png

开机会执行的两个进程是killall和halt(s00killall和 s01halt),这两个都表示为终止进程。故init 0是用于表示关机的。

##############################################################################

再看看rc1.d : ls /etc/rc.d/rc1.d

init 1,对应的系统会运行,/etc/rc.d/rc1.d里指定的程序。

4358ed108b54c13c4b59e0081a82215c.png

这个级别启动的服务有6个,sysstat、vm2-monitor、cpuspeed、blk、6udev、和single(单用户模式的服务)。故此级别是单用户模式,只有root能用,不支持其他用户。

##############################################################################

init 2,init3、init4、init5、init6 都是按照这个规则运行的。

看看重启系统 init6 吧:

395c19f57713ddca6bb57987edc49c11.png

这个级别里,只有两个服务,一个为killall,一个是reboot,即,关闭现在的系统,重启。故此级别是重启。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值