Linux入门之进程的高级管理(ps命令、top动态监控、进程优先级和进程的控制)

一、进程的概念及状态

  1. 概念
    程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。简而言之,进程就是系统未完成并且正在进行的工作。

  2. 进程的状态

  • R(Running):该程序正在运行中
  • S(Sleep):该程序目前正处在睡眠状态(idle),但可以被唤醒(signal)
  • D 不可唤醒的睡眠状态,通常进程可能在等待I/O
  • T(stop):停止状态,可能是在工作控制或除错(traced)状态
  • Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外

二、查看进程的命令

  1. 图形方式查看
gnome-system-monitor

在这里插入图片描述
2. 查看命令ps

命令 说明
ps -A 查看所有进程
ps -a 在环境中的所有进程,不包含环境信息
ps a 显示当前环境中运行的进程,包含环境信息
ps -u 显示进程用户信息
ps x 列出系统中所有运行包含tty输出设备
ps f 显示进程的父子关系
ps e 显示进程的详细信息(系统资源的调用)
ps aux 显示系统中所有进程并显示进程用户
ps ef 显示进程详细信息并显示进程父子关系
ps ax 显示当前系统中的所有进程
pstree 显示当前系统的进程树

显示结果如下图:
(1)查看当前环境中的进程
在这里插入图片描述
(2)查看所有进程,不包含环境信息
在这里插入图片描述
(3)显示在环境中的所有进程,不包含环境信息
在这里插入图片描述
(4)显示当前环境中运行的进程,包含环境信息
在这里插入图片描述
(5)列出系统中所有运行包含tty输出设备
在这里插入图片描述
(6)查看进程的所有人
在这里插入图片描述
(7)显示进程的详细信息(系统资源的调用)
在这里插入图片描述
(8)显示系统中所有进程并显示进程用户
在这里插入图片描述
(9)显示从属关系、显示进程详细信息并显示进程从属关系
在这里插入图片描述
在这里插入图片描述
(10)显示当前系统中的所有进程
在这里插入图片描述
(11)显示当前系统的进程树
在这里插入图片描述
3. 显示进程指定信息
ps -o xxx,xxx,…,xxx 显示进程的指定信息
如 ps -o %mem,user,pid
注意:
在进程中,有很多的信息如 comm(进程名称)、user(进程所有人)、group(进程所有组)、%cpu(进程cpu使用率)、%mem(进程内存使用率)、pid(进程id)和 nice(进程优先级)等。
示例:
在这里插入图片描述
4. 进程的排序

ps ax --sort=%cpu       ##正序,从小到大
ps ax --sort=-%cpu      ##倒序,从大到小

示例一:内存使用率从小到大排序
在这里插入图片描述
示例二:内存使用率排名前五的进程
在这里插入图片描述
5. stat中显示信息的含义

  • S 进程状态
  • s 顶级进程
  • l 内存中有锁定空间
  • N 优先级低
  • < 优先级高
  • “+” 前台运行
    在这里插入图片描述
    三、进程优先级
    进程的优先级决定cpu资源分配和调用的先后顺序,优先级高的先调用,优先级低的后调用。通过优先级的设定可以提高系统的性能,避免紧迫的任务因来的迟而延迟执行。
  1. 进程的优先级范围
    -20~19,带 “-” 表示优先级高
  2. 优先级查看
ps ax -o pid,nice,comm

在这里插入图片描述
3. 指定某个优先级开启进程

nice -n 优先级数字 进程名称       ##指定进程打开后的优先级

在这里插入图片描述
4. 改变进程优先级

renice -n 优先级数字 进程pid
watch -n 1 "ps a -o pid,nice,comm"   ##监控正在运行的进程的信息

在这里插入图片描述
四、环境中进程的前后台调用

  1. jobs
    查看被打入环境后台的进程

  2. ctrl+z
    把占用终端的进程打入后台
    在这里插入图片描述

  3. fg jobsnum
    把后台进程调回前台
    在这里插入图片描述

  4. bg jobsnum
    把后台暂停的进程运行
    在这里插入图片描述

  5. comm &
    让命令直接在后台运行
    在这里插入图片描述
    五、进程信号

  6. 常用信号等级

信号等级 说明
1 进程重新加载配置
2 删除进程在内存中的数据
3 删除鼠标在内存中的数据
9 强行结束单个进程(不能被阻塞)
15 正常关闭进程(可能会被阻塞)
18 运行暂停的进程
19 暂停某个进程(不能被阻塞)
20 把进程打入后台(可以被阻塞)
  1. 查看信号详细信息
man 7 signal

在这里插入图片描述
3. 结束进程

 kill -信号 进程pid        ##结束某个进程
 killall -信号 进程名称     ##结束某一类进程
 pkill  -信号  进程名称

示例一:强制关闭进程
在这里插入图片描述
示例二:进程的正常关闭(有些进程不能通过信号15关闭)
在这里插入图片描述
示例三:pkill关闭进程
在这里插入图片描述
六、进程的动态监控
top 命令对进程进行监控

命令 说明
1 显示cpu每个核的负载
s 调整刷新频率
c cpu负载排序
m 内存使用量排序
h 查看帮助
u 查看指定用户进程
k 对指定进程发起信号
q 退出

示例:
(1)1显示cpu每个核的负载
在这里插入图片描述
(2)s刷新频率的调整
在这里插入图片描述
(3)c查看负载排序和m查看内存使用量的排序
在这里插入图片描述
(4)h 查看帮助
在这里插入图片描述
(5)按u直接输入用户名称,即可查看指定用户
在这里插入图片描述
(6)k对指定进程发起信号
按k键,根据提示输入指定进程的pid,再输入对该进程做的操作如kill,回车,我们可以发现该进程被结束。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43830639/article/details/89159447