深入了解Linux中的init进程及其运行级别

1d8c941b13bbe86285ebc407d6c3a71e.png

在Linux系统中,init进程是一个至关重要的组成部分。作为系统启动后的第一个进程,init始终保持进程编号为1,它的主要职责是引导并控制整个系统的运行。本文将深入探讨init进程及其与运行级别的关系,帮助读者更好地理解Linux系统的运作机制。

8edc2af9c83ddceb31053bcab4d36b76.png

一、init进程的概述

Init进程是由内核启动的第一个用户级进程,它的位置通常在/sbin/init。在系统启动过程中,内核会在过去曾使用过init的几个地方查找它,如果找不到,系统启动将失败。Init进程负责启动和管理其他所有进程,因此它是Linux系统中不可或缺的一部分。

二、运行级别的概念

运行级别(Runlevel)是用来描述系统服务状态的术语。不同的运行级别对应着系统提供的不同服务集合。运行级别从0到6,每个级别都代表不同的含义。例如,运行级别0表示系统关机,而运行级别3则表示系统运行在多用户模式,无图形界面。

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

0:停机或者关机(切勿将initdefault设置为0)
1:单用户模式,只root用户进行维护
2:多用户模式,不能使用NFS(Net File System)
3:完全多用户模式(标准的运行级别)
4:安全模式
5:图形化(即图形界面)
6:重启(切勿将initdefault设置为6)

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

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

开机会执行的两个进程是killall和halt,这两个都表示为终止进程。

故init 0是用于表示关机的。

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

这个级别启动的服务有三个,udev、lvm相关的和single(单用户模式的服务)。

故此级别是单用户模式,只有root能用,不支持其他用户。

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

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

init 3 ,对应的系统运行/etc/rc3.d里指定的程序。

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

init 4,对应的系统运行/etc/rc4.d里指定的程序。

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

此模式被称为安全模式。

init 5,对应的系统运行/etc/rc5.d里指定的程序。

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

完全的图形化界面模式

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

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

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

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

2ebff64a5d4d0179b06aa43c50123952.png

三、init进程与运行级别的关系

Init进程与运行级别之间存在着密切的关系。不同的运行级别会启动不同的服务,从而影响系统的行为。通过切换运行级别,可以调整系统的服务配置,以满足不同的需求。例如,当需要远程登录系统进行维护时,可以将运行级别切换到多用户模式(运行级别3),此时系统只提供必要的服务,而不启动图形界面。

四、如何查看当前运行级别

要查看当前系统的运行级别,可以通过输入命令cat /etc/inittab或者ps -p 1 -o s来实现。其中,/etc/inittab文件包含了当前运行级别的信息,而ps -p 1 -o s命令则显示了进程1(即init进程)的状态信息,其中包括运行级别。

五、总结

深入了解Linux中的init进程及其运行级别对于理解系统的运作机制至关重要。Init进程作为系统启动后的第一个进程,控制着整个系统的运行。而运行级别则描述了系统服务状态的不同配置,通过切换运行级别可以调整系统服务以满足不同的需求。希望本文能帮助读者更深入地理解Linux中的init进程及其运行级别。

猜你喜欢

转载自blog.csdn.net/zhangkunls/article/details/134985901