Linux设置开机启动级别

linux系统开机流程

1. 机器开机通电bios质检,质检通过后,bios会根据boot菜单,选择从硬盘启动。

2. 读取硬盘中的MBR(主引导记录),加载引导程序(linux中是grub),grub程序会加载系统kernel和虚拟文件系统。

3. 系统会运行init程序,该进程会读取/etc/inittab配置文件,决定运行级别,运行/etc/rc.d/rc.sysinit脚本对系统进行初始化,该脚本会设置系统时间,主机名,开启卷管理,以读写的方式重挂root文件系统,挂载本地文件系统,开启本地磁盘配额,开启交换空间。

4. 运行该运行级别下的/etc/rc.d/rcN.d/下的脚本,开启系统服务进程。

5. 读取/etc/rc.d/rc.local下的命令,并逐条运行。

6. 启动虚拟终端,进入登录界面。

运行级别

Linux系统有7个运行级别(runlevel),分别对应etc/下的rc*.d文件:

  运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

  运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

  运行级别2:多用户状态(没有NFS)

  运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

  运行级别4:系统未使用,保留

  运行级别5:X11控制台,登陆后进入图形GUI模式

  运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

运行级别的原理

1.在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)(注:自己常用的有/etc/init.d/network...)

2.在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别

3.rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。

4.系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件

  1)对于以K开头的文件,系统将终止对应的服务

  2)对于以S开头的文件,系统将启动对应的服务

5.查看运行级别用:runlevel

6.进入其它运行级别用:init N

7.另外init0为关机,init 6为重启系统。

注意:

init 文件名,指的是系统启动的第一个脚本;

init.d 目录名,目录内放的是各个服务的启动脚本,比如sshd、httpd等;

rc.local 链接文件,指到/etc/rc.d/rc.local。是系统初始化及服务均启动完毕后,最后执行的一个脚本,一些简单的脚本可以放到其中;

rcX.d 目录名,后面的X代表着每个运行级别。目录内有每个服务在init.d内启动脚本的链接文件,根据链接文件的名字来的启动状态。K开头表示不启动服务,S打头表示启动服务。

posted @ 2021-08-30 22:12  Jcpeng_std  阅读(681)  评论(0编辑  收藏  举报