一. init是Linux系统操作中不可缺少的程序之一。
  所谓的init进程,它是一个由内核启动的用户级进程。
  内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。
  内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

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

0:停机或者关机(千万不能将initdefault设置为0)

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

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

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

4:安全模式

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

6:重启(千万不要把initdefault设置为6)

其实,可以通过查看/etc/rc.d/中的rc*.d的文件来对比理解。。

init 0,对应的系统会运行,/etc/rc.d/rc0.d里指定的程序。我们来看下名称。

[root@localhost~]# ls /etc/rc.d/rc0.d

K01dnsmasqK15ksmtunedK35nmbK60crondK74lm_sensorsK83portreserveK85rpcgssdK88iscsiK90network S00killall

K10cupsK16ksmK35smbK66gpsdK75netfsK84NetworkManagerK85rpcidmapdK88rsyslogK92ip6tables S01halt

K10saslauthdK20nfsK36mysqldK69rpcsvcgssdK75udev-postK84wpa_supplicantK86nfslockK89iscsidK92iptables

K10xfsK25sshdK50haldaemonK70vboxdrvK76openvpnK85mdmonitorK87alsasoundK89netplugdK98qemu

K15gpmK30sendmailK50netconsoleK74acpidK83bluetoothK85messagebusK87rpcbindK89rdiscK99lvm2-monitor

依照上述红色字体,开机会执行的两个进程是killall和halt,这两个都表示为终止进程。故init 0是用于表示关机的。

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

[root@localhost ~] # ls /etc/rc.d/rc1.d

K01dnsmasqK15ksmtunedK35nmbK60crondK74lm_sensorsK84NetworkManagerK85rpcidmapdK88rsyslogK92ip6tablesS99single

K10cupsK16ksmK35smbK66gpsdK75netfsK84wpa_supplicantK86nfslockK89iscsidK92iptables

K10saslauthdK20nfsK36mysqldK69rpcsvcgssdK76openvpnK85mdmonitorK87alsasoundK89netplugdK98qemu

K10xfsK25sshdK50haldaemonK70vboxdrvK83bluetoothK85messagebusK87rpcbindK89rdiscS02lvm2-monitor

K15gpmK30sendmailK50netconsoleK74acpidK83portreserveK85rpcgssdK88iscsiK90networkS26udev-post

这个级别启动的服务有三个,udev、lvm相关的和single(单用户模式的服务)。故此级别是单用户模式,只有root能用,不支持其他用户。

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

[root@localhost ~ ]# ls /etc/rc.d/rc2.d/

K01dnsmasqK20nfsK36mysqldK74lm_sensorsK85rpcgssdK89netplugd S08iptablesS23NetworkManagerS30vboxdrvS99local

K10saslauthdK25sshdK50haldaemonK75netfsK85rpcidmapdK89rdisc S12rsyslogS24portreserveS35qemu

K10xfsK30sendmailK50netconsoleK76openvpnK86nfslockK90networkS13rpcbindS25cupsS85gpm

K15ksmtunedK35nmbK66gpsdK83bluetoothK88iscsiS02lvm2-monitorS15mdmonitorS26acpidS90crond

K16ksmK35smbK69rpcsvcgssdK84wpa_supplicantK89iscsid S08ip6tablesS22messagebusS26udev-postS99alsasound

这个级别启动的服务多了,NetworkManager/iptables/acpid/alsa都已经开启,但是nfs,smb,openvpn相关服务没有开启,这个级别不支持nfs。

init 3 , 对应的系统运行/etc/rc.d/rc3.d

[root@localhost ~] # ls /etc/rc.d/rc3.d/

K01dnsmasqK30sendmailK74lm_sensorsK89rdiscS08iptablesS18rpcidmapdS25cupsS35qemuS85ksmtunedS99local

K10saslauthdK36mysqldK76openvpnK90network S12rsyslogS19rpcgssdS25netfsS50bluetoothS90crond

K10xfsK50netconsoleK84wpa_supplicantK99lvm2-monitorS13iscsiS22messagebusS26acpidS50haldaemonS91nmb

K20nfsK66gpsdK85mdmonitorS07iscsidS13rpcbindS23NetworkManagerS26udev-postS84ksmS91smb

K25sshdK69rpcsvcgssdK89netplugd S08ip6tablesS14nfslockS24portreserveS30vboxdrvS85gpmS99alsasound

这个级别nfs服务是开启的,被成为完全多用户模式。

init 4

[root@localhost ~ ]# ls /etc/rc.d/rc4.d/

K01dnsmasqK30sendmailK66gpsdK85mdmonitorS07iscsidS13rpcbindS23NetworkManagerS26udev-postS84ksmS99local

K10saslauthdK35nmbK69rpcsvcgssdK89netplugd S08ip6tablesS14nfslockS24portreserveS30vboxdrvS85gpm

K10xfsK35smbK74lm_sensorsK89rdiscS08iptablesS18rpcidmapdS25cupsS35qemuS85ksmtuned

K20nfsK36mysqldK76openvpnK90network S12rsyslogS19rpcgssdS25netfsS50bluetoothS90crond

K25sshdK50netconsoleK84wpa_supplicantK99lvm2-monitorS13iscsiS22messagebusS26acpidS50haldaemonS99alsasound

此模式被称为安全模式。

init 5

[root@localhost ~ ]# ls /etc/rc.d/rc5.d/

K01dnsmasqK25sshdK66gpsdK84wpa_supplicantK87rpcbindK90networkS22messagebusS26udev-postS84ksmS99local

K10saslauthdK30sendmailK69rpcsvcgssdK85mdmonitorK88iscsiK99lvm2-monitorS23NetworkManagerS30vboxdrvS85ksmtuned

K10xfsK36mysqldK74lm_sensorsK85rpcgssdK89iscsidS08ip6tablesS25cupsS35qemuS91nmb

K15gpmK50netconsoleK76openvpnK85rpcidmapdK89netplugdS08iptablesS25netfsS50bluetoothS91smb

K20nfsK60crondK83portreserveK86nfslockK89rdiscS12rsyslogS26acpidS50haldaemonS99alsasound

完整的图形模式

init 6

[root@localhost ~ ]# ls /etc/rc.d/rc6.d/

K01dnsmasqK15ksmtunedK35nmbK60crondK74lm_sensorsK83portreserveK85rpcgssdK88iscsiK90networkS00killall

K10cupsK16ksmK35smbK66gpsdK75netfsK84NetworkManagerK85rpcidmapdK88rsyslogK92ip6tablesS01reboot

K10saslauthdK20nfsK36mysqldK69rpcsvcgssdK75udev-postK84wpa_supplicantK86nfslockK89iscsidK92iptables

K10xfsK25sshdK50haldaemonK70vboxdrvK76openvpnK85mdmonitorK87alsasoundK89netplugdK98qemu

K15gpmK30sendmailK50netconsoleK74acpidK83bluetoothK85messagebusK87rpcbindK89rdiscK99lvm2-monitor

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

不同的系统版本,可能里面的文件会不同,如果要查看,可以通过ll来看,其实他们都是软连接。

init0-6(启动级别)的更多相关文章

  1. 修改Linux默认启动级别或模式的方法

    冲动的惩罚: 海阔天空: 在linux系统的7种启动级别,默认为X-Window,类似于Windows的窗口模式. 如何修改或变更linux的默认启动级别或模式呢? 以root身份进入Linux,修改 ...

  2. Ubuntu优化-修改启动级别

    一 修改Ubuntu启动级别 sudo apt-get install sysv-rc-conf 执行: sysv-rc-conf 打x的表示开机启动. 二 启动级别 Ubuntu默认启动级别为2 r ...

  3. CentOS(四)--Linux系统的启动级别

    对于绝大多数Linux程序员来说,进入Linux系统后一般看到的是黑乎乎的界面(开发模式),因为系统如果启动选择开发模式,会减少启动时间,优化内存等.但是通常我们刚安装完Linux系统,然后进去以后是 ...

  4. Linux启动级别

    一共有7种启动级别,分别为: #   0 - halt (Do NOT set initdefault to this)  #   1 - Single user mode  #   2 - Mult ...

  5. 系统的启动模式(启动级别)的改动---使用upstart启动机制的

    /*********************************************************************  * Author  : Samson  * Date   ...

  6. centos修改默认启动级别

    Linux分为7个启动级别: 0 - 系统停机状态 1 - 单用户工作状态 2 - 多用户状态(没有NFS) 3 - 多用户状态(有NFS) 4 - 系统未使用,留给用户 5 - 图形界面 6 - 系 ...

  7. CentOS7修改默认启动级别

    如上个随笔所言,Linux分为7个启动级别: 0 - 系统停机状态 1 - 单用户工作状态 2 - 多用户状态(没有NFS) 3 - 多用户状态(有NFS) 4 - 系统未使用,留给用户 5 - 图形 ...

  8. Linux init 0-6 启动级别

    原文地址:http://blog.sina.com.cn/s/blog_5f8e8d9801010wlr.html 原文地址:[转]Linux init 0-6 启动级别作者:流水清风 init 0- ...

  9. CentOS7 修改 启动级别

    1. centos7 之前应该使用init 的启动脚本 不支持并行 速度比较慢, centos7 开始使用systemd 的模式 提高了开机的性能 所以之前的init 脚本修改 启动级别应该就无效了 ...

  10. [svc][op]Ubuntu优化-服务管理(启动级别)

    一 修改Ubuntu启动级别 sudo apt-get install sysv-rc-conf 执行: sysv-rc-conf 打x的表示开机启动. 二 启动级别 Ubuntu默认启动级别为2 r ...

随机推荐

  1. SpringMVC入门 bug集锦X3和SSM原始整合

  2. 这个匿名对象没有实现IComparable接口

    https://www.cnblogs.com/felixnet/p/5193086.html https://docs.microsoft.com/zh-cn/dotnet/api/system.i ...

  3. Azkaban2.5安装部署(系统时区设置 + 安装和配置mysql + Azkaban Web Server 安装 + Azkaban Executor Server安装 + Azkaban web server插件安装 + Azkaban Executor Server 插件安装)(博主推荐)(五)

    Azkaban是什么?(一) Azkaban的功能特点(二) Azkaban的架构(三) Hadoop工作流引擎之Azkaban与Oozie对比(四) 不多说,直接上干货! http://www.cn ...

  4. java类在eclipse上打jar包,Linux上成功运行的实例

    1 eclipse下的java项目结构如下图所示: 2 打包的步骤如下: 3 修改minifest.mf文件:  4 .上传需要的三方jar包们和主类打的jar(案例是topV.jar)并且执行jav ...

  5. Linux之shell命令实现-批量去掉文件名中空格,以及批量修改文件名为数字序号文件名

    1 shell下批量出去文件名中的空格 执行看现象: 上面的是执行for循环以后看到的: 然而源目录下的文件如下: 这样的话想要cat某个具体文件是拿不到的,所以需要去空格处理: 处理方式有很多:如 ...

  6. Ionic开发-常用命令

      $ionic start myApp [tabs | sidemenu | blank] $ionic platform add android $ionic build android $ion ...

  7. Fleet-运行一个高可用的服务

    运行一个高可用的服务 使用CoreOS最大的好处就是你可以以高可用的方式来运行你的服务.接下来我们将部署两个一样的Apache web server容器.然后,我们将通过让一台机器出现故障,fleet ...

  8. JVM垃圾回收机制四

    GCRoots与可达性分析 Java中的四种引用 强引用.软引用.弱引用.虚引用.这四种引用的强度是逐渐减弱的,JVM垃圾回收的力度是逐渐增强的. 四种引用的作用 1.可以让程序员通过代码来控制对象的 ...

  9. pixhawk 固件Firmware内执行make px4fmu-v2_default 编译报错解决办法

    执行下列指令报错 make px4fmu-v2_default /bin/sh: 1: Tools/check_cmake.sh: Permission denied Makefile:44: Not ...

  10. Java实现的断点续传功能

    代码中已经加入了注释,需要的朋友可以直接参考代码中的注释.下面直接上功能实现的主要代码: import java.io.File; import java.io.FileNotFoundExcepti ...