一、查看进程的主要命令工具
- ps aux、ps –elf:查看进程静态快照
- top:查看进程动态排名
- pstree:查看进程与进程之间的树型关系结构
- pgrep:根据指定的名称或条件检索进程
二、具体操作
1.pgrep
• pgrep — Process Grep
– 用途:pgrep [选项]... 查询条件
• 常用命令选项
– -l:输出进程名,而不仅仅是 PID
– -U:检索指定用户的进程
– -x:精确匹配完整的进程名
[root@svr7 /]# vim 1.txt & # 创建一个vim进程 让他后台运行
[root@svr7 /]# pgrep -l vim #检索所有进程名带a的 输出进程名,而不仅仅是 PID
9751 vim
[root@svr7 /]# pgrep -x vim #检索所有进程名带a的 仅仅输出 PID
9751
[root@svr7 /]# pgrep -lU root #检索root的所有进程
1 systemd
2 kthreadd
3 ksoftirqd/0
5 kworker/0:0H
7 migration/0
8 rcu_bh
9 rcu_sched
..........
2.pstree
查看进程树
• pstree — Processes Tree
– 格式:pstree [选项] [PID或用户名]
• 常用命令选项
– -a:显示完整的命令行
– -p:列出对应PID编号
[root@svr7 /]# pstree
[root@svr7 /]# useradd lisi #创建一个用户
[root@svr7 /]# su - lisi #登录lisi
[root@svr7 /]# pstree lisi #查看用户进程
bash─┬─pstree
└─vim
[root@svr7 /]# pstree -a lisi #显示lisi的进程 加-a选项内容更丰富
bash
├─pstree -a lisi
└─vim 1.txt
[1]+ Stopped vim 1.txt
[root@svr7 /]# pstree -ap lisi #显示lisi的进程 并且带有pid号
bash,987
├─pstree,1032 -ap lisi
└─vim,1012 1.txt
3.ps aux
1)ps aux 操作,信息全面
– 列出正在运行的所有进程
安装列号显示:
用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令
2) ps -elf 操作,有进程的父进程的PID值
– 列出正在运行的且有父进程的进程
PPID:父进程的PID号
[root@svr7 /]# ps aux
[root@svr7 /]# ps aux | wc -l
95
[root@svr7 /]# ps -elf #显示有父进程的进程 对比ps aux 有稍稍区别 多出WCHAN
4.top
进程动态排名
• top 交互式工具
– 格式:top [-d 刷新秒数] [-U 用户名]
[root@svr7 /]# top -d 1
按P(大写)可以进行CPU的排序
按M(大写)可以进行内存的排序
load average: 0.00, 0.01, 0.05 #CPU负载量 1分 5分钟 15 分钟
[root@svr7 /]# top #输入top查看进程动态排名 按P按CPU排序 按M可以进行内容排序
四、进程调度及终止
进程调度及终止的主要命令工具:
- 命令行 &:将命令行在后台运行
- Ctrl + z 组合键:挂起当前进程(暂停并转入后台)
- jobs:列出当前用户当前终端的后台任务
- bg 编号:启动指定编号的后台任务
- fg 编号:将指定编号的后台任务调入前台运行
- kill [-9] PID...:杀死指定PID值的进程
- kill [-9] %n:杀死第n个后台任务
- killall [-9] 进程名...:杀死指定名称的所有进程
- pkill:根据指定的名称或条件杀死进程
1) & 与 fg的连用
[lisi@svr7 ~]$ vim abc.txt & # & 命令放到后台运行 , 使用这一条命令不会马上执行,会将它放到后台
[1] 1188 # [1] 代表后台的第一个进程 pid 为1188
[lisi@svr7 ~]$ fg 1 #将指定编号的后台任务调入前台运行,这将执行之前的vim程序
2) Ctrl + z 组合键
可以将正在执行的命令暂时放到后台执行
一般用于: 1.脚本执行
2.执行时间长的命令
3) kiallall
命令格式 killall [-9] 进程名
[root@svr7 /]# vim 1.txt &
[root@svr7 /]# vim 1.txt &
[root@svr7 /]# vim 1.txt & #创建三个进程并且将他们放入后台
[root@svr7 /]# jobs 查看一下
[1] 已停止 vim 1.txt
[2]- 已停止 vim 2.txt
[3]+ 已停止 vim 3.txt
[root@svr7 /]# killall -9 vim #杀死名为vim的所有进程
[root@svr7 /]# killall -9 vim
[1] 已杀死 vim 1.txt
[3]+ 已杀死 vim 3.txt
[2]+ 已杀死 vim 2.txt
4)kill
杀死单个进程 kill -9 进程名
[root@svr7 /]# vim 1.txt &
1306
[root@svr7 /]# kill -9 1306
5) 干掉进程的不同方法
– Ctrl+c 组合键,中断当前命令程序
– kill [-9] PID... 、kill [-9] %后台任务编号
– killall [-9] 进程名...
– pkill 查找条件
[root@svr7 /]# sleep 1000 &
4013
[root@svr7 /]# jobs -l
[root@svr7 /]# kill 4013 #按照PID进行杀死
[root@svr7 /]# sleep 1000 &
4015
[root@svr7 /]# jobs -l
[root@svr7 /]# kill -9 4015 #按照PID强制杀死 , 加-9 代表强制杀死
[root@svr7 /]# jobs -l
[root@svr7 /]# sleep 1000 &
[root@svr7 /]# sleep 1000 &
[root@svr7 /]# sleep 1000 &
[root@svr7 /]# jobs
[root@svr7 /]# killall sleep #杀死所有sleep进程
杀死一个用户开启的所有进程(强制踢出一个用户)
[root@svr7 /]# killall -9 -u 用户名