1.7Linux中的进程管理

进程定义

进程查看命令

  1. 图形进程查看工具
    在这里插入图片描述2. ps 进程查看

(1)a 与终端相关的进程
ps a
在这里插入图片描述(2)x 与终端无关的进程
ps x
在这里插入图片描述
(3)u 用户信息归类
ps au 使用用户信息归类的方式查看与终端相关的进程
在这里插入图片描述(4)f
ps af 使用层级结构查看与终端相关的进程
在这里插入图片描述(5)o 指定参数去显示内容
ps ao pid,user,comm 仅查看与终端相关的进程的进程id,用户名,命令名称
在这里插入图片描述(6)-e 显示所有进程
ps -e
在这里插入图片描述
(7)-f 显示信息的完整格式
ps a -f 查看与终端相关的进程的完整信息格式

UID PID PPID C STIME TTY STAT TIME CMD
用户名 进程id 子进程id 是否加有特殊参数 进程用到的终端 状态 占用CPU时间 进程名称

在这里插入图片描述
(8)-H 显示层级结构
ps ao pid,user,comm -H
仅显示与终端相关的进程的pid,user,comm,并显示进程间的关系
在这里插入图片描述ps a -f -H
显示与终端相关的进程的完整信息,并显示层级结构
在这里插入图片描述
(9)-o 指定参数

(10)–sort= 排序显示
ps -e -o pid,user,%cpu --sort=-%cpu
仅显示所有进程的pid,user,%cpu,同时按照所占cpu容量进行倒序排序
在这里插入图片描述
(11)ps axu

参数 注释
USER 进程拥有者
PID 进程id
%CPU 进程占用CPU容量
%MEM 进程占用内存容量
VSZ 进程所占虚拟内存容量
RSS 进程常驻内存内存中的数据大小
TTY 进程使用终端数量
STAT 进程状态
START 进程运行时长
TIME 进程占用CPU时长
COMMAND 进程名称

在这里插入图片描述3. pgrep 进程过滤

(1) -u uid 显示指定用户进程
pgrep -u 0 过滤出uid=0的用户(root)进程
在这里插入图片描述(2)-U user 显示指定用户进程
pgrep -U root 过滤出超级用户的进程
在这里插入图片描述(3)-l 显示进程名称
pgrep -U root -l 过滤出超级用户的进程,并显示进程名称
在这里插入图片描述
(4)-t tty 显示指定终端进程

(5)-a 显示进程的完整名称
pgrep -aU root 过滤出超级用户进程,并显示其完整名称
在这里插入图片描述(6) -P 显示当前进程的子进程
pgrep -P 919 过滤出919号进程的子进程
在这里插入图片描述

Q:只显示进程所占cpu容量的前5个的pid
A:ps ax -o pid --sort=-%cpu | grep -v pid | head -n 5
A:ps axo pid --sort=-%cpu | head -n 6 | tail -n 5

在这里插入图片描述在这里插入图片描述
4. pidof 查看该进程的pid
pidof cat 查看进程cat的pid
pidof gedit 查看进程gedit的pid
在这里插入图片描述5. top 动态进程查看

top 注释
06:05:59 系统时间
up 1:52 运行时间
1 user 系统中登陆的用户数
load average 一段时间 (1 分钟、5分钟、15分钟) 内平均 Load
0.01 表示最近1分钟平均负载
0.08 表示最近5分钟平均负载
0.08 表示最近15分钟平均负载

linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。

在这里插入图片描述

Tasks 注释
319 total 任务总量
2 running 正在运行的进程数量
317 sleeping 睡眠状态的进程数量
0 stopped 阻塞状态的进程数量
0 zombie 僵死状态的进程数量

在这里插入图片描述

%Cpu9(s) 注释
2.0 us 用户空间占用cpu的百分比
0.7 sy 内核空间占用cpu的百分比
0.0 ni 改变过优先级的进程占用cpu的百分比
95.0 id 空闲时间
1.7 wa wait IO等待占用cpu的百分比
0.3 hi Hardware IRQ 硬中断占用cpu的百分比
0.3 si software 软中断占用cpu的百分比
0.0 st 虚拟机所用的系统的时间(被偷走的时间)

在这里插入图片描述

MiB Mem 注释
1806.1 total 内存总量
64.3 free 内存空闲总量
1368.2 used 内存已使用总量
373.6 buff/cache 缓存

在这里插入图片描述

MiB Swap 注释
2048.0 total 交换分区总容量
1993.0 free 交换分区空闲容量
55 used 交换分区已使用容量
342.3 avail Mem 可用交换分区总量

在这里插入图片描述

(1)top命令参数

-d 指定刷新频率
top -d 1 以1秒的刷新频率动态查看进程

-b 批次查看进程

-n 指定显示的批次数量

top -b -n 3 以3批次查看进程
在这里插入图片描述在这里插入图片描述在这里插入图片描述
(2)top 内部命令

P CPU排序
在这里插入图片描述
M 内存排序
在这里插入图片描述

T CPU时间排序
在这里插入图片描述
l 关闭/开启uptime信息
在这里插入图片描述
t 关闭/开启cpu&task
在这里插入图片描述

s 指定刷新频率
在这里插入图片描述

k 操作进程
在这里插入图片描述在这里插入图片描述

u 指定用户查看进程
在这里插入图片描述

进程优先级

  1. 进程优先级

用top或者ps -l查看进程会发现有PR(PRI) NI两个字段:
NI 是优先值,是用户层面的概念, PR是进程的实际优先级, 是给内核(kernel)看(用)的。
一般情况下,PR=NI+20, 如果一个进程的优先级PR是20, 那么它的NI(nice)值就是20-20=0。

在这里插入图片描述
范围: 0~139
内核自控优先级:0~99
用户可控优先级:100~139

nice:-20~19

进程调度优先级是从-20到19,一共40个级别,数字越大,表示进程的优先级越低。默认时候,进程的优先级是0。

每个进程都有两个影响其调度的值:
第一个是动态值,内核经常更改这个值,也就是ps -l命令里的pri值
第二个是静态值,只是偶尔被用户手工更改,即ps -l里的ni值。对任何进程而言,ni这个值可以从-20到19不等,其中数值越小优先级越高,数值越大优先级越低,
-20的优先级最高,19的优先级最低,需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。

PRI即进程的优先级,此值越小进程的优先级别越高。而NI,也就是我们所要说的nice值(通过nice命令设置),其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。
所以,nice命令设置的优先级不是程序最终的优先级,而只是优先级的修正数值。

  1. 设定优先级

监控进程gedit的优先级变化情况
在这里插入图片描述renice -n 5
降低进程的优先级nice5级
在这里插入图片描述在这里插入图片描述
nice -n 5 gedit
指定优先级打开进程

在这里插入图片描述
nice -n 5 gedit &
指定优先级打开进程,并在后台运行

在这里插入图片描述

状态 注释
S sleeping
< 优先级高
s 顶级进程
T stop
N 优先级低
R running
+ 运行在后台

进程前后台调用

  1. Ctrl+z
    把占用shell的进程挂起,调入后台

运行gedit进程
在这里插入图片描述挂起的gedit,无法再键入内容
在这里插入图片描述
2. jobs查看当前shell中处于挂起状态的所有工作
在这里插入图片描述

  1. bg 把后台挂起的进程运行起来
    此时,gedit中可以键入内容,不占用shell
    在这里插入图片描述
  2. fg 把后台进程调入前台
    占用shell
    在这里插入图片描述
  3. & 在后台运行进程
    不占用shell

在这里插入图片描述

进程信息号

  1. 进程信号
信号 注释
1 重新加载系统配置文件(不停服,source)
2 清空内存中的进程数据
3 清空内存中的鼠标(Ctrl+\
9 强行结束进程(不会被阻塞)
15 正常关闭进程(会被阻塞)
18 运行被暂停的进程
19 暂停进程(不会被阻塞)
20 暂停进程(会被阻塞)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 进程信号控制工具

kill 进程信号 进程号
kill -9 21393
结束进程21393
在这里插入图片描述

killall 进程信号 进程名称
killall -9 vim
结束所有的vim进程
在这里插入图片描述

pkill 进程信号 用户名称
pkill -u username
结束该用户的所有进程(只会留下一个该用户的终端)
在这里插入图片描述pkill -u -9 username
结束该用户的所有进程
在这里插入图片描述

systemd守护进程

  1. 实验环境:2台主机(或是虚拟机)

  2. 守护进程:帮助内核处理事务的助手

  3. ssh -l username IP地址
    远程连接主机

  4. systemctl 命令用法

命令 注释
start 开启
status 查看状态
stop 关闭
reload 重新加载
restart 重新启动服务
enable 设定服务开机启动
enable --now 设定服务开启并当前开启服务
disable 设定服务开启不启动
list-units 查看系统所有服务当前的状态
list-units-files 查看服务开机状态
list-dependencies 列出服务依赖性
mask 冻结服务
unmask 解锁
set-default 设定系统运行模式
get-default 查看系统运行模式

systemctl status sshd
查看状态
在这里插入图片描述systemctl stop sshd
关闭
在这里插入图片描述systemctl start sshd
开启守护进程
systemctl disable sshd
设定守护进程开机不启动
在这里插入图片描述systemctl enable sshd
设定守护进程开机启动
在这里插入图片描述systemctl mask sshd
冻结在这里插入图片描述
systemctl unamsk sshd
解锁
在这里插入图片描述

系统中的登录审计

命令 注释
w 显示正在登录系统的账号
w -i 显示登陆来源(var/run/utmp)
last 显示曾经登录成功并已经退出的账号 (/var/log/wtmp)
lastb 显示曾经试图登录但未成功的账号(var/log/btmp)

w
在这里插入图片描述
last
在这里插入图片描述lastb
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47133613/article/details/112757251