Linux08-引导过程和服务控制+进程和计划任务管理

引导过程:

按下电源,设备开始启动一直到登录界面,系统开机的过程

服务控制:

开、关、重启、查看状态

一、引导过程:

引导过程就是开机过程

开机自检(BIOS自检):

服务器开机之后,根据BIOS设置,对一系列硬件设备进行初步检测。

有cpu、内存、显卡、外接设备(鼠标键盘)、硬盘

检测成功之后系统会根据预设的启动顺序移交系统的控制权,绝大多数情况都是移交给 硬盘(系统文件和配置在硬盘里)

总结:检测硬件设备,找到系统硬盘,移交控制权到硬盘

MBR引导:

根据第一个硬盘第一个扇区sda1的MBR(主引导记录),找出操作系统所在的分区

把系统的控制权移交给包含系统引导文件的分区,调用grub菜单

控制权转移到grub菜单

grub菜单:

grub菜单:多系统的引导器程序

系统控制权交给grub之后,显示启动菜单供用户选择。

选择完系统之后,系统的控制权会交给所选操作系统的内核文件

centos 7 使用的是grub2启动引导器

总结:获取内核文件的设置和路径,控制权移交给操作系统的内核文件

加载内核:

在/boot目录当中

Linux内核文件,事先编译好的可执行的二进制文件

介于各种硬件资源和系统程序之间

调度以及分派系统资源。给进程使用。

总结:需要的启动文件,和相关的配置操作,放到内存当中。

系统控制权的移交

init进程初始化:

现在都用systemd 初始化

初始化:把刚才加载到内存中的处理配置和处理进程一并执行生效

开机过程结束,等待用户登录

总结:

BIOS自检(检查硬件)——MBR(找操作系统)——grub(选择操作系统)——加载内核(处理配置,处理开机启动程序,放到内存中)——init初始化(系统配置生效,运行开机启动程序,整个过程结束,等待用户登录)

init:init初始化已经被淘汰

串行:他是把系统当中的配置的脚本和启动程序脚本,按照顺序一个一个执行

centos7:systemd 取代传统的init的方式。并行:一起运行

systemd也是Linux当中所有进程中的第一个程序,而且所有其他进程都是systemd的 子进程

pid:进程号,systemd的进程号是1

centos 7 /usr/lib/systemd/  1

以前:/sbin/init  1  

二、systemd控制方式:

控制方式:控制单元[unit]来进行描述和控制系统服务和资源

单元类型:

.service:指的就是服务,进程提供的特定功能就是服务

.socket:通信套接字,提供端口通信服务

.target:一组服务的集合,描述的是系统的运行级别

systemctl:系统服务控制命令

格式:systemctl  控制类型  服务名称

控制类型:

start:开启

status:状态

restart:重启

改配置文件一定把服务重新加载 restart(先关闭再启动,不要轻易用)

reload:重新加载

不需要关闭进程,直接读取配置。推荐使用reload

stop:停止、关闭服务

enable:开机自启

disable:关闭开机自启

systemctl stop firewalld:关闭防火墙

仅限于实验环境!实际工作中不能关闭防火墙!!!!!

三、服务进程:

running:运行状态

dead:服务已经停止运行

failed:服务有异常,一般来说,是配置文件有错

messages:系统日志,所有的系统运行,控制记录都在这个文件当中

只要服务启动有异常-——看日志

tail -f /var/log/messages  查看异常

四、系统的运行级别:

.target:

Linux

  1. 关机
  1. 单用户模式,不需要密码即可登录,用于系统维护
  2. 字符界面
  3. 字符界面
  4. 字符界面
  5. 图形化界面
  6. 重启

init 0-6

runlevel:查看系统的运行级别

N:表示之前没有切换过系统的运行级别

5:表示系统的运行级别是图形化界面

工作中只有一个运行级别:3

init快捷命令

init 0 关机

poweroff 关机

init 6 重启系统

reboot 重启系统

五、急救模式实验:
1、更改root密码:

使用之前先设置虚拟机挂载镜像

重启界面,按esc,选择镜像进入

chroot /mnt/sysimage 加载光盘镜像,进入系统的根环境中

2、修复MBR扇区故障:

MBR占第一个硬盘的第一个扇区,若mbr文件被恶意删除,系统找不到硬盘,启动不了

1.先新建一块新硬盘sdc,创建文件系统(建的第一个扇区里面有mbr文件),挂载目录

2.用dd命令将sdc1里面的mar.bak文件复制到sda里面

dd if=/dev/sda of=/data1/mbr.bak bs=512 count=1

——将sda里的mbr.bak文件复制到data1(sdc)里面,先备份,后续还原用

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

if=文件名:输入文件名。即指定源文件。

of=文件名:输出文件名。即指定目的文件。

bs=bytes:同时设置读入/输出的块大小为bytes个字节。

count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

为什么mbr.bak是在data1目录里。

因为目录只是硬盘的载体,实际上data1就是硬盘分区sdc1

  1. 破坏引导文件

dd if=/dev/zero of=/dev/sda bs=512 count=1

现在sda里面的mbr被破坏了

之后重启虚拟机,到虚拟机里操作

选择急救模式

这里做错了是mbr.bak不是mar.bak!!

前面复制错了下面也做错了,全部改成mbr.bak

之后reboot重启就可以了

六、进程和计划任务管理:

进程管理,进程的真正执行者是线程

就是Linux的任务管理器

计划任务管理:怎么创建定时执行任务

1、静态查看进程:

父进程--子进程

开启进程:父进程先启动---子进程再启动,是由父进程给子进程分配资源----子进程运行启动

结束运行:子进程先结束---父进程会负责回收资源,然后父进程才会结束

若父进程先结束,子进程会变成僵尸进程

ps:查看静态进程的统计信息

ps -aux

a:显示当前终端上的所有进程,包括其他用户的进程

u:列出所有进程的用户

x:显示所有终端的进程信息

user:进程的所属用户

pid:进程的id号 唯一的。 标的:对应的进程名。杀进程,就是啥pid号

%CPU:当前进程占用CPU的百分比

%MEM:当前进程占用物理内存的百分比

VSZ:进程占用的虚拟内存量(kb)

RSS:进程占用的物理内存量(kb)

TTY:表示启动的终端名  ?表示不是从终端打开的

STAT:进程状态:

S:表示该进程处于休眠状态

D:不可中断的休眠状态

R:运行中的进程

T:停止状态

Z:僵尸进程

小写s:表示该进程拥有子进程

<:表示高优先级

N:表示低优先级

+:表示前台运行的进程

l:表示该进程有多个线程

START:该进程启动时间

TIME:进程占用cup的时间/进程使用cup多长时间

COMMAND:进程启动的命令

ps -eif

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

f:完整格式显示进程信息

l:长格式显示进程信息

F:显示系统内所有进程的信息

S:进程状态

pid:进程的pid号

ppid:进程的父进程的进程号

C:进程生命周期中CPU的使用率

PRI:进程的优先级,数字越大,优先级越低

NI:谦让值,决定优先级的大小

ADDR:进程在内存中的地址

SZ:进程被换出,需要交换空间swap空间的大致大小

WCHAN:显示休眠进程的系统函数名

STIME:进程的启动时间

TTY:启动的终端

?表示系统自启

选择ps -aux用

僵尸进程:

僵尸进程无法被强制结束 kill -9

僵尸进程占用的系统资源很少,对系统没有什么影响

僵尸进程太多怎么处理:只能重启,重启之后全部消失

pstree:以树形结构列出进程的信息(线程)

-a:显示进程所有的完整的信息

-p:查看进程的线程,显示pid号

-u:查看进程所属的用户

pstree -up ‘进程号pid号’  会这个足矣

利用管道符来查询:

ps -aux | grep ‘httpd’

pstree -up 80011

2、动态查看进程信息:top

 load average: 0.00, 0.01, 0.05

单位时间内系统处理的任务数

0.00:一分钟内系统处理的任务数的平均值

0.01:五分钟内系统处理的任务数的平均值

0.05:十五分钟内系统处理的任务数的平均值

第二行:进程信息

Tasks: 176 total,   1 running, 175 sleeping,   0 stopped,   0 zombie

total:当前系统总进程数

running:运行中的进程数

sleeping:休眠中的进程数

stopped:终止的进程数

zombie:僵尸进程数

第三行:CPU的使用情况

%Cpu(s):  0.2 us,  0.8 sy,  0.0 ni, 98.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

us:用户进程占用CPU的大小(管理员、程序、普通用户)

sy:内核占用CPU的大小

ni:优先级调度占用CPU的大小

id:空闲CPU的百分比

先用top看id(空闲百分比)再用ps -aux看%CPU 看哪个进程占用CPU高

wa:表示磁盘读写性能

hi:一分钟的CPU使用率

si:五分钟的CPU使用率

st:十五分钟的CPU使用率

第四行:内存信息 用free -h看直观的多

KiB Mem :  5573340 total,  4646468 free,   398448 used,   528424 buff/cache

total:总共空间

free:剩余空间

used使用空间

buff/cache:缓存

第五行:swap交换空间 也用free -h看

KiB Swap:  5767164 total,  5767164 free,        0 used.  4860268 avail Mem

total:总共swap空间

free:剩余swap空间

used:使用swap空间

avail Mem:可被程序使用的物理内存

PID 进程id

USER 进程所有者的用户名

PR 优先级 --系统优先级

NI 谦让度值。负值表示高优先级,正值表示低优先级 --人为设置的优先级

VIRT 进程使用的虚拟内存总量,单位kb

RES 进程使用的物理内存大小,单位kb

SHR 共享内存大小,单位kb

S 进程状态

%CPU 上次更新到现在的CPU时间占用百分比

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

TIME+ 进程使用的CPU时间总计,单位1/100秒

COMMAND 命令名/命令行

在top界面

按下数字键1:显示所有CPU的个数的CPU的工作状态

按下c键:根据CPU的使用百分比的大小进行排序(默认就是这个排序)

q:退出

运行一次即可退出:top -b -n 1

相当于静态查看

3、五大负载和优化查看:

CPU负载:了解系统是否过载,优化高CPU负载的进程。

安装epel里安装htop(功能集成,可以kill进程)插看

内存负载:监控内存的工具free(静态)、top(动态)

优化内存:释放一些不必要的内存占用,关闭不需要的服务,释放缓存(清除缓存)

清除缓存命令:echo 1 > /proc/sys/vm/drop_caches (平常不要用,发 版期再用)

☆磁盘负载:监控I/O;input、output,输入输出,读写

iostat命令监控读写性能

网络负载:

监控网络带宽:iftop监控网络流量(epel)

进程负载:看top里面第三行的us

4、进程管理命令:pgrep

pgrep:用于查找进程pid结合kill命令一块使用  后接进程名

pgrep -a:显示进程名和pid

pgrep -c:仅显示匹配进程的数量,其他都不显示

pgrep -f:匹配进程名和参数

5、kill:杀进程

传递信号给内核,执行终止程序的命令

kill只是一个信号,他传递信号,而不是自己杀,内核处理

kill 进程pid

kill  -9:强制杀。表示进程被终止,需要立即退出,慎用

kill -15:告诉进程现在要被终止,请进程自行停止,比较慢

6、jobs:列出后台进程的状态信息

jobs -l:显示所有进程的pid号

jobs -n:仅显示最近的后台进程

jobs -r:仅显示正在运行的后台进程

jobs-s:仅显示已停止的后台进程

7、&:后台运行

cp -a /mnt/opt/ &

命令行结尾加上&符号 表示后台运行,不用等运行完就能操作其他

接收Java、war包时一定要在后面加& 让他在后台运行

有些服务时依赖一些相关的运行程序包,启动的时候一定要后台运行

Ctrl+Z:放到后台,并且停止运行

fg:把后台的程序调度到前台

8、创建定时任务:crontab

crontab -e创建

* * * * *

五个*分别表示:分 时 日 月 周

分:0-59

时:0-23

日:1-31

月:1-12

周:0-7

周日:0 7都能表示

*表示范围内的任意时间

* * * * *    空格隔开

1,3,5* * * * :,号表示多个不连续的时间。第一分钟,第三分钟,第五分钟

1-5* * * *:

*/10* * * *:表示每十分钟执行一次

crontab -e 创建定时任务

打开这个界面:和vim编辑器一样

前面是定时日期 后面是绝对路径

crontab -e -u koeda:为指定用户koeda创建定时任务

crontab -l 查看定时任务

删除定时任务:

crontab -e:进入定时任务,dd一个一个删

crontab -r:清空所有。无法挽回。不能用这个

不在界面显示定时任务,在后台邮件执行:

每个月第一天,早上九点半,清除缓存

30 9 1 * *

每年六月八号的上午十二点半执行

30 12 8 6 *

每个月,每隔十天,每天的早上六点半执行

30 6 *-10 * *

每天的25分 8-11点 ,1月、6月、9月 每周周三执行

25 8-11 * 1,6,9 3

每天10-30分,每天9-10点,每周二执行

10-30 9-10 * * 2  

查看邮件:cat /var/spool/mail/root

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值