查看
ps | 查看静态的进程统计信息 |
top | 查看动态的进程排名信息 |
pgrep | 根据特定条件查询进程 PID 信息 |
pstree | 以树形结构列出进程信息 |
S ---休眠
R ---运行
Z ---僵死(应予以手动终止)
< ---高优先级
N ---低优先级
s ---父进程
+ ---前台进程
结束
jobs -l
# 查看处于后台的任务列表
bg --将后台的任务恢复运行,并继续在后台操作
fg ---将后台进程恢复到前台运行,可指定任务序号
kill | 终止指定PID号的进程 |
killall | 终止指定名称的所有进程 |
qkill | 根据特定条件终止相应的进程 |
PS
直接输入ps可以查看当前tty下的进程
ps
输入ps aux 可以静态查看 输入命令回车的那一刻的 所有进程 信息
ps aux
输入ps -elf 可以查看前面的运行情况搭配上面的 运行情况引用块就能知道其中的意思
ps -elf
红色标记的地方就是运行状态
S ---休眠
R ---运行
Z ---僵死(应予以手动终止)
< ---高优先级
N ---低优先级
s ---父进程
+ ---前台进程
如果你想插卡指定的信息 可以和grep结婚
ps aux |grep bash
# 查看包含bash的内容
top
输入top会进入到运行程序中持续刷新进程信息
top
P---根据CPU占用情况对进程列表进行排序
M----根据内存占用情况进行排序
N---根据启动时间进行排序
h---可以获得top程序的在线帮助信息
q----可以正常退出top程序
空格键----可以强制更新进程状态显示
pgrep
-l 输出对应的进程名称
-U 查询特定的用户运行的进程
-t 查询特定终端运行的进程
pgrep -l "log"
# ‘log’ 就是我么要查看进程中包含log的PID信息
前面进程号(PID) 后面是名称
我们使用另外一个账户(test)去运行一个进程
如 下图
在另外一个账户上使用tail 让他这样就一直不会结束 再回到root上
pgrep -l -U '用户名'
pgrep -l -U 'test'
可以看到test用户下正在运行一个tail的进程
还可以指定查看tty
pgrep -l -U '用户名' -t '终端'
# 如果我们使用以下命令
pgrep -l -U 'test' -t 'tty1'
什么都没有
因为他在pts/0上
pgrep -l -U 'test' -t 'pts/0'
pstree
这个软件有些用户没有自动安装需要安装,使用yum源安装
Linux:rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客-CSDN博客
由于pstree这个是一个软件包中其中的一条命令 软件包名称并不是这个
使用
yum search all pstree
# 查询这个命令来自那个软件包
来自一个叫psmisc的软件包
yum -y install psmisc
pstree -aup
# 列出所有树状图
pstree -ap '列出指定用户进程树状图'
pstree -ap 'test'
在后台运行程序
当我们运行了要执行很长时间的命令时候 可以在后面加入&符号
cp /dev/cdrom myiso.iso
就一直这样卡着了
如果我们正常输入并且执行 会占用前台 在这期间我们无法执行其他命令 会在这里卡一会
这时ctrl + z先给这个前台运行程序暂停一下 然后使用
cp /dev/cdrom myiso1111.iso &
这样我们还能输入命令的同时还能让命令在后台执行
这时要看后台可以输入jobs -l
jobs -l
-l 显示该进程对应的pid号
如果你运行着什么任务使用了 ctrl+z 或者 在后台运行程序 都可以在jobs -l中查看
这个是刚刚那俩个
此外 在ps top pgrep pstree中都能查看到只不过jobs -l 比较方便快捷!!!
bg fg
bg就是恢复暂停的任务 让他在后台执行
fg就是恢复暂停的任务 让他在前台执行
现在恢复上边一个到前台
fg + 最前面的编号
fg 3
成功恢复
现在把第二个放到后台继续运行
bg 4
即使是他后面没有&符号 也是可以恢复到后台的
即使他后面有& 也是也是可以恢复到前台的
kill
-9 强制结束
如果不强制结束大部分都无法结束 所以 kill -9 基本是绑在一起的
现在后台有两个进程
直接使用 kill 把他俩全结束
kill -9 + PID号
kill -9 4525
kill -9 4528
现在进程就结束了
kill -9 4686 4687 4688
这样也是可以的
killall
-9 强制结束
可以看见有三个 vi的命令
使用
killall -9 vi
vi的命令一键全杀
pkill
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
-9:强制终止
现在test下运行了两个
pkill -9 -U "test"
# 直接关闭test所有进程
pgrep -l -U test -t tty1
# 关闭tty1下test的所有进程
关闭成功