6.系统引导过程和控制

本文详细介绍了Linux系统的引导过程、系统初始化、故障排查及进程管理。包括MBR备份与恢复、GRUB配置修复、密码修改等实际操作,以及ps、top、pgrep等进程管理工具的使用,并讲解了at和crontab进行一次性及周期性计划任务的设置方法。内容实用,适合Linux系统管理员和运维人员学习。
摘要由CSDN通过智能技术生成

系统引导过程和控制

一、引导过程

  • 开机自检BIOS

通电测试硬件

  • MBR引导

加载启动程序列表

  • GRUB菜单

用户需求来启动的自定义的程序,包含默认启动程序

  • 加载内核

内核、镜像加载到内存准备启动使用

  • init进程初始化

加载系统默认进程程序,例如驱动,加载到内存中,准备提供给用户使用

二、系统初始化进程

init是系统中第一个进程

init进程的PID号永远为1

systemd

是init软件

第一个进程/lib/systemd/systemd

systemd单元类型

单元类型扩展名
service.service描述一份系统服务
socket.socket描述一个进程间通信的套接字
device.device描述一个内核识别的设备文件
mount.mount描述一个文件系统的挂载点

systemd目标

运行级别systemd的target说明
0target关机状态使用该级别会关闭主机
1rescue.target单用户模式不需要密码即可登录多用于系统维护
2multi-user.target
3-5
6

三个实验

1.MBR扇区故障

1.备份MBR扇区数据到其它磁盘( /dev/sdb1)

mkdir /backup                #创建备份文件夹
mount /dev/sdb1 /backup      #挂载带有备份文件的分区
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1   #备份mbr引导文件

2.模拟破坏MBR引导扇区

dd if=/dev/zero of=/dev/sda bs=512 count=1         #复制空文件填补

3.引导界面进入急救模式,选择"Troubleshooting"选项再选择"Rescue a CentOS Linux system"选项,进入急救模式选择“1"选择Continue并按两次Enter键

mkdir /backup                      #创建备份文件夹
mount /dev/sdb1 /backup            #挂载带有备份文件的分区
dd if=/backup/mbr.bak of=/dev/sda  #恢复备份数据
exit                               #执行exit命令退出临时Shell环境,系统将会自动重启

2.GRUB配置文件

引导界面进入急救模式,重建GRUB菜单配置文件

rm -rf /boot/grub2/grub.cfg    #删除grub菜单

重启,然后输入exit进入急救模式

chroot /mnt/sysimage       #加载光盘镜像,切换到系统根环境
grub2-install /dev/sda     #重新将GRUB引导程序安装到第一块/dev/sda的MRB扇区
grub2-mkconfig -o /boot/grub2/grub.cfg    #重新构建GRUB菜单的配置文件
exit       #退出chroot环境
reoot      #重启

3.修改密码

进入急救模式

chroot /mnt/sysimage  #加载光盘镜像,切换到系统根环境
passwd root           #重设root密码  

三、进程和计划任务管理

  • 程序

静态的保存在介质中可执行代码和数据

  • 进程

动态的在cpu和内存中可执行的程序代码,每个程序可以创建多个子进程

1.静态进程信息 ps

-a 显示终端下所有进程信息

-u 以用户为主格式输出进程信息

-x 显示当前用户在所有终端下的进程信息

ps -aux      #简单列表形式显示进程信息
  • VSZ 虚拟内存

  • RSS 物理内存

  • TTY 在那个终端上运行

  • STAT 进程状态:S休眠状态 T停止状态 Z僵尸进程

R 该程序正在运行

S 该程序在睡眠当中

Z 该程序父程序无法终止它

< 进程运行在高优先级上

N 进程运行在低优先级上

L 进程有页面锁定在内存中

s 进程是控制进程

l 进程是多线程

+当前运行在前台

D 系统守护进程不可中断状态

T 调试、程序执行 一般停止

  • 快捷键

ctrl+c 发送sigint信号终止一个进程

ctrl+z 发送sigstop信号挂起一个进程

ctrl+d 表示eof ,代表输入完成或者注销

ps -elf     #长格式显示系统的进程信息

-e 显示系统内的所有进程信息

-l 使用长格式显示进程信息

-f 使用完整格式显示进程信息

tail -f /var/log/messages

2.查看进程动态信息 top

任务管理top命令

up 系统运行时间 users 当前登录用户

load average:0.05,0.03,0.05系统负载,分别为1分钟、5分钟、15分钟cpu负载平均值

系统任务tasks信息: total:总进程数 running: 正在运行的进程数 sleeping :休眠进程

stopped:终止的进程 zombie:僵尸进程

us:用户占用 sy:内核占用 ni:优先级 id:空闲

wa:I/O等待占用 hi:硬件中断占用 si:软件中断占用 st:虚拟化占用

Mem:total 总内存空间 free 空闲内存 used 已用内存 buff/cache 物理内存和交换内存的缓冲区

Swap:total 总交换空间 free 空闲交换空间 used 已用交换空间 avail Mem 可用物理空间

PIN 进程id USER 进程所有者用户 PR 优先级 NI 调优先级 VIRT 虚拟内存 RES 物理使用内存

SHR 共享内存大小

S 进程状态 D不可中断的睡眠状态 R 运行中 S睡眠中 T已跟踪/已停止 Z僵尸状态

%CPPU 上次更新到现在的cpu时间占用比

%MEM 进程使用的物理内存占比

TIME+ 进程使用的cpu时间

COMMAND 命令名/命令行

  • 快捷键

P:按CPU排序 M:按内存排序 T:按内存排序

p:加进程id查看某个进程状态 N:根据启动时间排序 q:退出

3.查询进程PID pgrep

-l 输出对应的进程名以及pid

-U 查询特定用户的进程

-t 查询在特定终端运行的进程

4.以树形结构展示 pstree

-p 列出对应的pid号

-u 列出对应的用户名

-a 列出完整的命令信息

pstree -aup     #查看系统的进程树

终止进程

kill 7095       #正常结束进程
kill -9 7095    #强制终止进程

针对程序名终止

killall -9 vim  #终止该程序多个进程

针对用户和终端

pkill -l -u     #针对于用户

5.后台任务 jobs

jobs -l  #查看后台任务列表   并显示pid号
fg 1     #将后台程序调入前台使用

CTRL+z将程序后台挂起 CTRL+c强制中断前台运行的程序

四、计划任务 at

1.一次性计划 at

  • data时间

  • atq查询未执行的计划任务

at 11:11 2022-5-27        #在2022.5.27 11:11建立计划任务
at> pgrep -U root | wc -l > /tmp/ps.root   #将系统运行的总数量统计在ps.root文件中
at> <EOT><EOT>            #添加结尾然后ctrl+d提交

2.周期性计划 crontab

  • crontab 周期性任务设置

/etc/crontab 配置文件地址

分 时 日 月 周

分钟 取值为从0到59之间的任意整数
小时 取值为从0到23之间的任意整数
日期 取值为从1到31之间的任意整数
月份 取值为从1到12之间的任意整数
星期 取值为从0到7之间的任意整数,0或7代表星期日

*表示该范围内的任意时间

,表示间隔的多个不连续时间点

-表示一个连续的时间范围

/指定间隔的时间频率

-e 编辑计划任务

which echo   #查询echo命令绝对路径
crontab -e   #编辑周期计划任务
*/1 * * * * /usr/bin/echo "this is a test" >> /opt/test_ky20.txt #每一分钟将数据写入txt文件中

-l 查看crontab详细内容

-u 指定一个用户执行周期计划

-r 删除周期计划


星期 取值为从0到7之间的任意整数,0或7代表星期日

*表示该范围内的任意时间

,表示间隔的多个不连续时间点

-表示一个连续的时间范围

/指定间隔的时间频率

-e 编辑计划任务

which echo   #查询echo命令绝对路径
crontab -e   #编辑周期计划任务
*/1 * * * * /usr/bin/echo "this is a test" >> /opt/test_ky20.txt #每一分钟将数据写入txt文件中

-l 查看crontab详细内容

-u 指定一个用户执行周期计划

-r 删除周期计划

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值