千家信息网

Linux系统启动流程及服务控制

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,博文结构启动5个阶段Linux关机什么是daemon与服务(service)通过systemctl管理服务Systemctl针对service类型的配置文件一.启动5个阶段:内核的引导。运行 init
千家信息网最后更新 2025年12月04日Linux系统启动流程及服务控制
博文结构启动5个阶段Linux关机什么是daemon与服务(service)通过systemctl管理服务Systemctl针对service类型的配置文件

一.启动5个阶段:

内核的引导。
运行 init。
系统初始化。
建立终端 。
用户登录系统。

1.开机自检
服务器主机开机之后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交本机硬盘;

2.MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB);

3.GRUB菜单
对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,Centos 7 采用的是GRUB2启动引导器。

4.加载Linux内核
Linux内个是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将会完全掌握整个Linux操作系统的运行过程。在Centos 系统中,默认的内核文件是"/boot/vmlinuz-3.10.0-514.el7.x86_64"。

5.init进程初始化
为了进一步的系统引导过程,Linux内核首先将系统中的"/sbin/init"程序加载到内存中运行,init进程负责完成一系列的系统初始化过程,最后等待用户进行登录。

二.init程序的类型:

SysV: init, CentOS 5之前, 配置文件: /etc/inittab。Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。

三.运行级别

Linux系统有7个运行级别(runlevel):

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式运行级别4:系统未使用,保留运行级别5:X11控制台,登陆后进入图形GUI模式运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
在inittab中的以下6行就是定义了6个终端:1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6

用户登录系统

一般来说,用户的登录方式有三种:

(1)命令行登录(2)ssh登录(3)图形界面登录

四.图形模式与文字模式的切换方式

Linux预设提供了六个命令窗口终端机让我们来登录。
默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。

sync                          将数据由内存同步到硬盘中shutdown                 关机指令shutdown -h now   立马关机shutdown -h 20:25 系统会在今天20:25关机shutdown -h +10    是分钟后关机shutdown -r now    系统立马重启shutdown -r +10     系统十分钟后重启reboot                      重启 == shutdown -r nowhalt                关闭系统
正确的关机流程为:sync > shutdown > reboot > halt不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。关机的命令有 shutdown -h now poweroff 和 init 0 重启系统的命令有 shutdown -r now reboot init 6
服务的启动、关闭与观察等方式:启动:/etc/init.d/daemon start 关闭:/etc/init.d/daemon stop 重新启动:/etc/init.d/daemon restart 状态观察:/etc/init.d/daemon status服务启动的分类: 服务的相依性问题: 执行等级的分类: 制定执行等级默认要启动的服务:默认要启动: chkconfig daemon on 默认不启动: chkconfig daemon off 观察默认为启动否: chkconfig --list daemon 执行等级的切换行为: init3  init 5(纯切换到图形界面)

五.什么是daemon与服务(service)

(1)systemd好处如下:

平行处理所有服务,加速开机流程: 一经要求就回应的 on-demand 启动方式(systemctl) 服务相依性的自我检查: 依 daemon 功能分类:unit(服务单位)将多个 daemons 集合成为一个群组:向下相容旧有的 init 服务脚本: 

(2)systemd 的配置文件放置目录

/usr/lib/systemd/system/:每个服务最主要的启动脚本设置,有点类似以前的 /etc/init.d 下面的文件;/run/systemd/system/:系统执行过程中所产生的服务脚本,这些脚本的优先序要比 /usr/lib/systemd/system/ 高! /etc/systemd/system/:管理员依据主机系统的需求所创建的执行脚本,其实这个目录有点像以前 /etc/rc.d/rc5.d/Sxx 之类的功 能!执行优先序又比 /run/systemd/system/ 高 

(3)daemon与服务(service)

(4)通过systemctl管理服务

1、active (running):正有一只或多只程序正在系统中执行的意思,举例来说,正在执行中的 vsftpd 就是这种模式。 2、active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。 举例来说,开机或者是挂载时才会进 行一次的 quotaon 功能,就是这种模式! quotaon 不须一直执行~只须执行一次之后,就交给文件系统去自行处理啰!通常用 bash shell 写的小型服务,大多是属于这种类型 (无须常驻内存)。 3、active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。4、inactive:这个服务目前没有运行的意思。 既然 daemon 目前的状态就有这么多种了,那么 daemon 的默认状态有没有可能除了 5、enabled:这个 daemon 将在开机时被执行 6、disabled:这个 daemon 在开机时不会被执行 7、static:这个 daemon 不可以自己启动 (enable 不可),不过可能会被其他的 enabled 的服务来唤醒 (相依属性的服务) 8、mask:这个 daemon 无论如何都无法被启动!因为已经被强制注销 (非删除)。可通过 systemctl unmask 方式改回原本状态

举例说明

强迫服务注销 (mask)

root@localhost ~]# systemctl stop firewalld[root@localhost ~]# systemctl mask firewalld  \\就是把启动的脚本清除[root@localhost ~]# systemctl status firewalld● firewalld.service   Loaded: masked (/dev/null; bad)   Active: inactive (dead) since 六 2019-11-23 23:05:22 CST; 17s ago Main PID: 752 (code=exited, status=0/SUCCESS)11月 23 23:03:40 localhost.localdomain systemd[1]: Starting firewalld - dynamic fi....11月 23 23:03:43 localhost.localdomain systemd[1]: Started firewalld - dynamic fir....11月 23 23:05:22 localhost.localdomain systemd[1]: Stopping firewalld.service...11月 23 23:05:22 localhost.localdomain systemd[1]: Stopped firewalld.service.Hint: Some lines were ellipsized, use -l to show in full.[root@localhost ~]# 
[root@localhost ~]# systemctl unmask firewalld  \\解除mask[root@localhost ~]# systemctl status firewalld

六.CentOS 7.1 的默认情况下,就有 26 个 target unit

主要有下面几个

graphical.target:就是文字加上图形界面,这个项目已经包含了下面的 multi-user.target 项目! multi-user.target:纯文本模式! rescue.target:在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的暂时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。 但是这是额外系统,因此可能需要动到 chroot 的方式来取得你原有的系统emergency.target:紧急处理系统的错误,还是需要使用 root 登陆的情况,在无法使用 rescue.target 时,可以尝试使用这种模 式! 5.shutdown.target:就是关机的流程。 6.getty.target:可以设置你需要几个 tty 之类的,如果想要降低 tty 的项目,可以修改这个东西的配置文件!

正常的模式是 multi-user.target 以及 graphical.target 两个,救援方面的模式主要是 rescue.target 以及更严重的 emergency.target。 如果要修改可提供登陆的 tty 数量,则修改 getty.target 项目。基本上,我们最常使用的当然就是 multi-user 以及 graphical

[root@localhost ~]# systemctl poweroff  \\系统关机[root@localhost ~]# systemctl reboot    \\重新开机[root@localhost ~]# systemctl suspend   \\进入暂停模式[root@localhost ~]# systemctl hibernate  \\进入休眠模式[root@localhost ~]# systemctl rescue   \\强制进入救援模式[root@localhost ~]# systemctl emergency   \\强制进入紧急救援模式
系统 服务 运行 模式 文件 级别 登录 就是 状态 控制 内核 用户 命令 方式 程序 脚本 登陆 配置 内存 图形 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金华比奇网络技术有限公司咋登录 大学校园网络安全法律法规 大数据城市网络安全指数 集团公司网络安全工作原则 梦幻新区怎么改默认服务器 祥兴网络软件开发 乌兰浩特专业云计算网络安全培训 湖北传视网络技术有限公司 深圳互联网科技有限公司怎么样 网络安全防护归口部门 网站Excel文档数据库建立 武船计算机网络技术 贵州大数据服务器图片 软件开发定额标准表格 万荣县融媒体网络安全挂标 网络安全证书不受信任怎么办 软件开发两年了想转行 大一数据库实训报告总结 软件开发的类图如何画 广州网龙网络技术有限公司 面向功能的软件开发称为 留守儿童网络安全视频 安全通信网络安全 搭建内网穿透服务器 带web 李胜是某计算机软件开发公司 网络安全竞赛类型 网络安全技巧论文 忻州网络安全建设项目 网络安全有哪些性质 海南省关于网络安全案例
0