linux系统引导过程和服务管理
引导过程与服务管理
1. 引导过程
BIOS:开机自检硬件,
MBR:协助硬件找到操作系统
GRUB:统计启动加载器,根据策划给你续的配置文件找到内核文件的位置
加载内核:运行内核(操作系统),将内核加载到内存中
在操作系统上启动祖宗进程:centos 7
centos 6
内核
内核的功能
进程管理
服务:特定的应用程序
编译安装
systemd 默认给rpm、yum提供服务
编译安装想要能用systemd,
init进程
centos 6,程序串行启动,慢
systemd
centos 7,程序并行启动,快
1.2 单元类型
Service 描述一个系统服务软件
Target 描述一组单元
1.3 运行级别
init 0 关机
init 1 单用户模式,维护系统,系统急救
init 3 多用户模式,最完整的字符界面
init 5 多用户模式,图形化界面
init 6 重启
1.4 故障修复
1.4.1 修复MBR分区
利用硬盘进行备份,并修复
备份,一定要放到不同硬盘上
dd if=/dev/sda of=/dev/sdb/mbr.bak count=1 bs=512B
if 从哪里复制
of 复制到哪里
count 复制几次
bs 复制一次多大
破坏sda的mbr
dd if=/dev/zero of=/dev/sda count=1 bs=10M
修复目的
修复sda里面的MBR分区
修复步骤
1. 先在另外一块格式化过的硬盘中备份MBR
2.进入急救界面
选择“Troubleshooting”(3),
选择“Rescue a CentOS system”(2),
按“1回车”,再按“回车”继续,进入急救模式界面
3. 将另外一块硬盘中的MBR备份数据恢复到sda中,重启即可
利用scp远程拷贝到另一台服务器中,并修复
# scp 要拷贝的文件路径 拷贝到哪里
scp ./mbr.sda 192.168.32.12:/opt/test
# 将本机上的复制出来的mbr文件拷贝到另一台服务器的文件夹中
dd if=/dev/zero of=/dev/sda count=1 bs=10M
进入到急救模式界面,按“3回车”,再按“回车”
由于此时无法进入网卡配置IP地址,只能配置临时IP地址,临时修改ip地址
ifconfig ens33 192.168.32.15/24
ifconfig ens33 192.168.32.14 255.255.255.0
ifconfig # 查看ens33是否配置了IP地址
ping 192.168.32.12 # ping一下另外一台服务器看看是否ping的通
scp 192.168.32.12:/opt/test/mbr.sda ./
# 将另一台服务器上备份的mbr数据拷贝到本机上来
1.4.2 修复grub.conf文件
rm -rf /boot/grub2/grub.conf
# 模拟删除grub.conf文件
重启,在读进去条时,快速按“Esc”进入BIOS,
选择“CD-ROM Drive”,选择“Troubleshooting”(3),
选择“Rescue a CentOS system”(2),
按“1回车”,再按“回车”继续,进入急救模式界面
chroot /mnt/sysimage
# 切换到真机环境
grub2-install /dev/sda
# 重新加载sda分区
grub2-mkconfig -o /boot/grub2/grub.cfg
# 重新构建grub菜单
1.4.3 遗忘root用户名密码
进入急救模式界面
chroot /mnt/sysimage
# 切换到真机环境
passwd
# 修改密码
exit
# 退出真机环境
reboot
#重启
2. 服务控制
2.1 systemctl 命令
systemctl start httpd 开启服务
systemctl stop httpd 关闭服务
systemtcl status httpd 查看服务当前状态
systemctl restart httpd 重启服务
systemctl reload httpd (不重启,不影响服务运行)重新加载服务的配置文件
systemctl enable httpd 开机自启服务
systemctl disable httpd 开机不自启服务
systemctl enable --now httpd 开机启动并且立即开启服务
systemctl disable --now httpd 开机不自启,并且关闭服务
2.2 service unit file文件由三部分组成
[Unit]
[Service]
[Install]
2.2.1Unit段的常用选项
Description
After
Requires
Wants
Conflicts
2.2.2 Service的常用选项 (怎么启动)
Type
ExecStart
ExecStop
ExecReload
2.3 编译安装,systemd管理
cd /opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xf nginx-1.18.0.tar.gz
cd nginx-1.18.0
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
#请使用网络源
mkdir /apps/nginx -p
./configure --prefix=/apps/nginx
make
make install
ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx
#做软链接 可以补全
# 写service配置文件
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
#描述软件的功能
[Service]
PIDFile=/apps/nginx/logs/nginx.pid
# 方便使用 pid 号 进行操作 , 指明进程的 pid 号
ExecStart=/apps/nginx/sbin/nginx
#使用绝对路径启动
ExecStop=/usr/bin/kill -s TERM $MAINPID
#杀死进程
# ExecStop=/apps/nginx/sbin/nginx -s stop
ExecReload=/apps/nginx/sbin/nginx -s reload
#重新加载
[Install]
WantedBy=multi-user.target
安装子字符界面
#nginx 要 告诉 systemd 我加入你了
systemctl daemon-reload
systemctl start nginx
反撇号(tab键上面):kill cat /nginx/nginx.pid
执行反撇号里面的内容
$:执行后面的命令 $PIDF
3. 总结
软件raid
启动过程
init
systemd
单元类型
运行级别
故障修复
服务 后台运行;一直运行
systemd 具有叫醒服务 rpcbind
编译安装手动写service配置文件,systemctl管理
优化启动过程
管理自启动程序
systemctl restart network nginx (并行,多个)
service nginx restart (串行,单个)
默认
系统启动过程
dd if=/dev/sda of=/dev/sdb/mbr.bak count=1 bs=512B
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律