引导和服务

2024-01-08 19:07:59

一、引导过程

? ? ? ? Linux操作系统的引导过程:

开机自检 ---- MBR引导 ---- GRUB菜单 ---- 加载Linux内核 ---- init进程初始化

? ? ? ? ?1. 开机自检

bios:检测硬件是否正常,然后根据bios中的启动项设置,去找内核文件

开机启动顺序:你可以把内核文件放在何处?

????????1 硬盘

????????2 移动设备,U盘,移动硬盘,光驱

????????3 网络启动

? ? ? ? 2. MBR引导

????????当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR(Master Boot Record, 主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区。

指引硬件找到内核文件 ,运行放在MBR扇区里的启动,GRUB引导程序

? ? ? ? 3. GRUB菜单

根据grub配置文件中记录的位置,去找到内核文件

? ? ? ? 4.?加载Linux内核

????????Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。

把内核和镜像文件系统加载到内存中 可以使用。

? ? ? ? 5.?init进程初始化(启动进程)

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

加载硬件驱动程序,内核把init进程加载到内存中运行

centos6:init

centos7:systemd

区别:

init进程:串行启动后续的程序 一个一个按顺序启动

? ? ? ? ● 由Linux内核加载运行/sbin/init程序

? ? ? ? ● init进程是系统中第一个进程

? ? ? ? ● init进程的PID(进程标记)号永远为1

systemd:是并行启动程序 全部一起启动

????????● Systemd是Linux操作系统的第一种init软件

????????● CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit

????????● CentOS7中运行的第一个init进程是/lib/systemd/systemd

????????linux操作系统七种运行级别

● 0:关机状态,使用该级别时将会关闭主机

● 1:单用户模式,不需要密码验证即可登录系统,多用于系统维护,类似于Windows的急救模式

● 2:字符界面(不支持访问网络)

● 3:字符界面的完整多用户模式,大多数服务器主机运行在此级别

● 4:字符界面(未分配使用)

● 5:图形界面的多用户模式,提供了图形桌面操作环境

● 6:重新启动

? ? ? ? runlevel——查看当前运行级别

????????systemctl get-default——查看默认的运行级别

????????systemctl set-default——设置默认的级别

二、排除启动类故障

? ? ? ? 1. 修复MBR扇区故障

故障原因

? ? ? ? 病毒、木马等造成的破坏

? ? ? ? 不正确的分区操作、磁盘读写误操作

故障现象

? ? ? ? 找不到引导程序,启动中断

? ? ? ? 无法加载操作系统,开机后黑屏

解决思路

? ? ? ? 应提前作好备份文件

? ? ? ? 以安装光盘引导进入急救模式

? ? ? ? 从备份文件中恢复

? ? ? ? (1)?备份mbr引导扇区到其他磁盘

? ? ? ? (2)模拟破坏mbr引导扇区

? ? ? ? (3)引导镜像急救模式进行mbr扇区恢复

? ? ? ? 挂载带有备份文件的分区,恢复备份数据,然后重启系统。

? ? ? ? 2.?修复grub分区

? ? ? ? (1)模拟删除grub.cf 文件

? ? ? ? (2)进入急救模式

????????重启,在开始动画加载时按“Esc”进入急救模式,选择过程,321

? ? ? ? ?(3)更改环境,重新加载,重启

? ? ? ? 3. 遗忘root用户的密码

? ? ? ? ? ? ? ? ① 有光驱

? ? ? ? ? ? ? ? ② 无光驱
? ? ? ? (1)进入内核模式

? ? ? ? (2)按 ctrl+x 运行,进入单用户模式

????????如果SELinux是启用的,才需要执行下面操作,如查没有启动,不需要执行

三、服务程序管理

什么是服务程序:

????????1. 一旦运行一直运行不会退出

????????2. 一般是后天运行,不会影响前台的操作

1. chkconfig????????centos6

service 服务程序 start

service 服务程序 stop

service 服务程序 restart

service 服务程序 reload

service 服务程序 status

在/etc/init.d/写一个同名文件的脚本(必须要有执行权限)

chkconfig --add 服务名称

chkconfig --level 35 服务程序 on 开机自启

chkconfig --level 35 服务程序 off 关闭开机自启

2. systemd????????centos7

通式:

????????systemctl? 控制类型? 服务名称

systemctl start 服务名 开启服务(可以开启多个)

systemctl stop 服务名

systemctl status 服务名

systemctl reload 服务名

systemctl restart 服务名

类型效果
start启动
stop停止
restart重新启动
reload重新加载
status查看服务状态
enable开机自启
disable开机不自启

开机自启

systemctl enable 服务名

开机自启,并立即启动

systemctl enable --now 服务名

开机不自启

systemctl disable 服务名

开机不自启,并立即关闭

systemctl disable --now 服务名

文件格式

????????通常由三部分组成:

[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等

[Service]:与特定类型相关的专用选项;此处为Service类型

[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

Unit段的常用选项:

????????Description:描述信息

????????After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

????????Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活

????????Wants:依赖到的其它units,弱依赖

????????Conflicts:定义units间的冲突关系

Service段的常用选项:

????????Type:定义影响ExecStart及相关参数的功能的unit进程启动类型

????????EnvironmentFile:环境配置文件ExecStart:指明启动unit要运行命令或脚本的绝对路径

????????ExecStartPre: ExecStart前运行

????????ExecStartPost: ExecStart后运行

????????ExecStop:指明停止unit要运行的命令或脚本

????????Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务

????????RestartSec: 设置在重启服务( Restart= )前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指

????????定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。

????????PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录

Install段的常用选项:

????????Alias:别名,可使用systemctl command Alias.service

????????RequiredBy:被哪些units所依赖,强依赖

????????WantedBy:被哪些units所依赖,弱依赖

????????Also:安装本服务的时候还要安装别的相关服务

编辑完文件内容后,刷新文件???

????????systemctl daemon-rload

文章来源:https://blog.csdn.net/qq_35995197/article/details/135412802
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。