引导和服务(systemd)和查看进程命令

程序和进程概要

程序:执行特定任务的一串代码,静态,存在硬盘中
进程:运行中的程序叫进程,动态,存在内存中

进程优先级

进程的优先级越小,则优先级越高
进程的优先级不能进行修改,只能修改程序的优先级

五大性能

性能查看命令
内存使用率free
cpu使用率top,w,iostat,uptime,ps
硬盘使用率df
硬盘读写性能iostat
网络带宽iftop
进程的详细信息prtstat
结束进程kill
计划列表crontab -l
查看进程ps aux 或者pstree

一、Linux引导过程

bios — mbr ---- grup ----- 加载内核 ----启动程序

1.BIOS

bios就是开机自检程序

作用

1.开机检测硬件是否故障
2.指引硬件去找操作系统(根据bios中设置的启动顺序1.硬盘 2.外接设备 3.网卡)

2.MBR引导

mbr的作用:运行放在MBR扇区里的启动 GRUB引导程序

mbr(硬盘) 512字节
mbr中的开机引导程序 446字节
mbr中的分区表 64字节

3.GRUB

GRUB的作用:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置

4.加载内核(kernel)

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

5.启动程序

加载硬件驱动程序,内核把init进程加载到内存中运行
centos7 启动第一个程序 systemd
centos6 启动第一个程序 init

二、服务

先启动systemd或init 再启动其他程序

1.systemd服务

负责在系统启动或运行时,激活系统资源,服务器进程和其它进程

简单来说systemd是管家式程序,管理系统中的其他程序

被systemd程序管理的程序

在/usr/lib/systemd/system/服务名.service的文件
yum rpm 会自动生成.service文件,天生可以被systemd管理

编译需要手写 服务名.service的文件

systemd进行管理的命令

systemctl start 服务名 开启服务
systemctl stop 服务名 关闭服务
systemctl status 服务名 查看状态
systemctl restart 服务 重启服务
systemctl reload 服务 重新加载,不影响客户使用
systemctl enable 服务 开机自启
systemctl disable 服务 关闭开机自启
systemctl enable --now 服务 开机自启,并且立即启动
systemctl disable --now 服务 关闭开机自启,并且立即关闭
systemctl damon reload

service unit file文件

service unit file文件通常由三部分组成:

1.[Unit]

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

2.[Service]

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

3.[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:安装本服务的时候还要安装别的相关服务

二、进程

1.进程状态

1.运行态:running
2.就绪态:ready
3.睡眠态:分为两种,可中断和不可中断
4.停止态:暂时停于内存,但不会被调度,除非手动启动
5.僵尸态:结束进程,父进程结束前,子进程不关闭
通过恢复父进程或者杀父进程可以让僵尸进程消失

2.进程分类

1.守护进程
2.服务进程

3.查看进程相关命令

1.ps命令

ps常用选项

  • a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
  • u:使用以用户为主的格式输出进程信息。
  • x:显示当前用户在所有终端下的进程信息。
  • o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
  • k|–sort 属性 对属性排序,属性前加 - 表示倒序 ps aux k -%cpu
    ps aux 命令可以查看系统中所有的进程
例:

在这里插入图片描述

表头含义
USER该进程是由哪个用户产生的。
PID进程的 ID。
%CPU该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
%MEM该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
VSZ该进程占用虚拟内存的大小,单位为 KB。
RSS该进程占用实际物理内存的大小,单位为 KB。
TIME该进程占用 CPU 的运算时间,注意不是系统时间。
COMMAND产生此进程的命令名。
进程状态(STAT)

-R:该进程正在运行。
-S:该进程处于睡眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态
-Z:僵尸进程:结束进程,父进程结束前,子进程不关闭
通过恢复父进程或者杀父进程可以让僵尸进程消失

2.top命令

top 命令可以动态地持续监听进程地运行状态

top选项:

-d # 指定刷新时间间隔,默认为3秒
-b 全部显示所有进程
-n # 刷新多少次后退出

top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:

  1. 第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
  2. 第二部分从第六行开始,显示的是系统中进程的信息;
    在这里插入图片描述
第一部分

第一行为任务队列信息,具体内容如表 所示。

内 容说 明
18:31:36系统当前时间
up 1:49系统的运行时间.本机己经运行 1小时49分钟
3 users当前登录了三个用户
load average: 0.00,0.01,0.05系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)

第二行为进程信息,具体内容如表

内 容说 明
Tasks: 188 total系统中的进程总数
1 running正在运行的进程数
187 sleeping睡眠的进程数
0 stopped正在停止的进程数
0 zombie僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第三行为 CPU 信息,具体内容如表

内 容说 明
Cpu(s): 0.1 %us用户模式占用的 CPU 百分比 个人用户开启的进程占用的 cpu 率
0.0%sy系统模式占用的 CPU 百分比
0.0%ni改变过优先级的用户进程占用的 CPU 百分比
100%id空闲 CPU 占用的 CPU 百分比
0.0%wa等待输入/输出的进程占用的 CPU 百分比 1
0.0%hi硬中断请求服务占用的 CPU 百分比
0.0%si软中断请求服务占用的 CPU 百分比
0.0%stst(steal time)意为虚拟程序占用 cpu 时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息,具体内容如表buff cache

内 容说 明
Mem: 20318888 total物理内存的总量,单位为KB
used己经使用的物理内存数量
free空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存
buffers作为缓冲的内存数量

第五行为交换分区(swap)信息,如表

内 容说 明
Swap: total交换分区(虚拟内存)的总大小
Ok used已经使用的交换分区的大小
free空闲交换分区的大小
avail mem作为缓存的交换分区的大小
第二部分

top 命令的第二部分输出,主要是系统进程信息,各个字段的含义如下:

  • PID:进程的 ID。
  • USER:该进程所属的用户。
  • PR:优先级,数值越小优先级越高。
  • NI:优先级,数值越小、优先级越高。
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。
  • S:进程状态。
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程的命令名。

3.pgrep命令

查看指定的进程

  • -U 指定用户
  • -l: 显示进程名
例:统计张三打开了多少个进程

pgrep -u zhangsan | wc -l

4.pidof 命令

作用是查找已知程序名的pid号

5.pstree命令

以树形结构列出进程信息

常用选项:

-p 显示PID

6.lsof命令

lsof 命令,“list opened files”的缩写,直译过来,就是列举系统中已经被打开的文件。通过 lsof 命令,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

lsof [选项]

选项功能
-c 字符串只列出以字符串开头的进程打开的文件。
+d 目录名列出某个目录中所有被进程调用的文件。
-u 用户名只列出某个用户的进程打开的文件。
-p pid列出某个 PID 进程打开的文件。

过滤端口
lsof -i : 端口
如果有 就确定端口被打开

7.vmstat命令

是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。
格式:vmstat [选项]

vmstat -d 可以列出硬盘有关读写总量的统计表。

8.iostat

iostat 可以提供更丰富的IO性能状态数据

9.prtstat

查看进程的详细信息
prtstat pid号

4.控制进程相关命令

命令功能
命令 &将前台命令放入后台运行
ctrl + z将运行中的命令放入后台挂起
jobs查看后台任务列表
bg 序号继续运行后台的命令
fg 序号将后台程序调回前台
kill命令发信号给程序

格式: kill 信号 pid号
将前台程序放入后台可以并行执行,提高程序的运行效率

在这里插入图片描述

3.计划任务

一次性计划任务

周期性计划任务

crontab

crontab -e [-u 用户名] #编辑计划任务

crontab -l [-u 用户名] #查看计划任务

crontab -r [-u 用户名] #删除计划任务

请添加图片描述
请添加图片描述

(额外内容)进程题目

1.如何解决中毒

2.确定单线程,多线程

3.过滤僵尸进程

4.统计进程总数

1.top命令
2.ps aux | wc -l

统计某用户的进程总数
pgrep -u 用户名 | wc -l
或者
ps aux | grep 用户名 | wc -l

5.根据pid号能找到进程的具体位置

6.删除大文件不释放空间

7.误删恢复

8.服务器运行了3天非常卡

清除缓存:
echo 3 > /proc/sys/vm/drop_caches

9.确定远端服务器端口是否被打开

例:在192.168.91.1 确定192.168.91.100上的5555 端口是否打开
telnet 192.168.91.100 5555

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值