引导和服务
一、引导过程
? ? ? ? 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!