良许Linux教程网 干货合集 Linux系统下启动服务器的命令

Linux系统下启动服务器的命令

在正式开始本文讲解之前,我们先来说一下 Linux 操作系统的开机流程吧。以下是在网上找到的一张图片,分享给大家。

image-20201117233841759
image-20201117233841759

首先 Linux 开启第一步就是加载 BIOS(基本输入输出系统),通俗一点说就是当你接通计算机电源时,首先计算机会加载 BIOS 信息,可以看出 BIOS 的重要性,以至于在最开始的时候计算机就要找到它。这是因为在 BIOS 中包含了很多比较重要的信息,就比如:CPU相关信息、设备启动顺序信息、内存信息、pnp信息、时间信息、内存信息、硬盘信息等等。找到这些之后,计算机心里就有数了,就知道要去找哪个硬件设备了。

BIOS 信息加载之后,就需要读取 MBR 了,大家都知道,磁盘上第 0 磁道第 1 扇区通常被称为 MBR,也叫做主引导记录,它里面存放了分区表信息和启动信息,大小固定位 512 字节。之后便会进入 Boot Loader,这块是在操作系统内核运行的一小段程序。这一段程序运行之后,我们就可以初始化硬件设备以及建立内存空间的映射图。最终将操作系统的软件环境和硬件环境都放到一个合适的状态。

在之后就是加载系统内核,然后进行系统内核的初始化,初始化这里是需要用户层 init 根据 inittab 文件来设定系统运行等级的。然后 init 程序执行 rc.sysinit,之后便启动了内核模块,执行不同运行级别的脚本程序,执行 /etc/rc.d/rc.local ,最终执行 /bin/login 程序,也就是我们正常进入系统之后的 登录界面了。

到这里 Linux 操作系统开机过程已经说完了。那么这里正式开始本篇文章的重点内容,本篇文章重点是要介绍关于 Linux 启动命令的。使用 Linux 比较早的人都知道,在 CentOS 5 和 CentOS 6 系统时,它的初始化进程服务是 System V init,在 CentOS 7 系统以后,已经替换掉了熟悉的 System V init ,而采用的是一个全新的初始化进程服务 systemd,所以习惯使用 CentOS 5 和 CentOS 6 的话,在对于 CentOS 7 的使用,可能会特别不适应。systemd 初始化进程服务采用了并发启动控制,这使得系统开机时速度有不少的提升。

虽然在最开始替换时,有很多人对它进行吐槽,但是不管怎样,CentOS 7 使用 systemd 初始化服务进程已经成为事实,我们都知道 Linux 是有 “运行级别” 这个概念的,但因为这一改变,“运行级别” 这一概念也不存在了。Linux 系统启动时需要进行大量的初始化工作,比如挂载文件分区以及交换分区,还有就是很多开机自启的服务也需要启动,这些也都被看作一个一个的单元(Unit),systemd 用目标(target)代替了老系统中的 System V init 中运行级别的概念。虽然运行级别已经被代替,但是其实大部分人还是更习惯说运行级别。

关于 systemd 与 System V init 之间的区别:

System V init 运行级别 systemd 目标名称 作用
0 runlevel0.target,poweroff.target 关机
1 runlevel1.target,rescue.target 单用户模式
2 runlevel2.target,multi-user.target 等同于级别3
3 runlevel3.target,multi-user.target 多用户文本界面
4 runlevel4.target,multi-user.target 保留
5 runlevel5.target,graphical.target 多用户的图形界面
6 runlevel6.target,reboot.target 重启
emergency emergency.target 紧急 shell

作用详细说明:

  • 运行级别0:系统处于停机状态,系统默认运行级别不能设为 0,否则不能正常启动
  • 运行级别1:单用户工作状态,一般救援模式进入,系统维护使用,不能远程登陆
  • 运行级别2:多用户状态(没有NFS)
  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
  • 运行级别4:系统未使用,保留
  • 运行级别5:登录之后有图形化界面,很少使用
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

如果习惯使用之前的 CentOS 5 和 CentOS 6 系统,那就比较郁闷了,因为在 CentOS 5 和 CentOS 6 系统中,对于系统服务管理是使用 servicechkconfig 来进行管理的。而 CentOS 7 中则被替换为了 systemctl 命令了,具体对比如下(例如我们启动 sshd 服务):

CentOS 5 和 CentOS 6 系统:

  • service sshd.service start 启动服务
  • service sshd.service restart 重启服务
  • service sshd.service stop 停止服务
  • service sshd.service reload 重载服务,重新加载配置文件,但不会终止服务
  • service sshd.service status 查看服务状态

CentOS 7 系统:

  • systemctl start sshd.service
  • systemctl restart sshd.service
  • systemctl stop sshd.service
  • systemctl reload sshd.service
  • systemctl status sshd.service

关于设置开机启动、不启动、查看服务启动状态对比:

CentOS 5 和 CentOS 6 系统:

  • chkconfig sshd.service on 设置服务开机自动启动
  • chkconfig sshd.service off 设置服务开机不自动启动
  • chkconfig sshd.service 查看特定服务是否设置了开机自启
  • chkconfig –list 查看各个级别下服务的启动和禁用情况

CentOS 7 系统:

  • systemctl enable sshd.service
  • systemctl disable sshd.service
  • systemctl is-enabled sshd.service
  • systemctl list-unit-files –type=sshd.service

注意:以上两组对比都是一一对应的。

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部