linux命令之查看进程状态
linux上进程主要有5种状态:
1. 运行(R)——正在运行或者处在运行队列中
2. 中断(S)——休眠中或受阻, 在等待某个条件的形成或接受到信号
3. 不可中断(D)——收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
4. 僵死(Z)——是指子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸
5. 停止(T)——进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
注:其他状态还包括:
< 高优先级
N 低优先
L 有些页被锁进内存
X 死掉的进程
s 包含子进程
+ 位于后台的进程组
l 多线程,克隆线程
1、 命令:ps
格式:ps [option]
功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。
选项:
-a 显示所有进程信息
-u uidlist 列出这个用户的所有进程
-e 显示当前运行的每一个进程信息
-f 显示一个完整的列表
-x 显示包括没有终端控制的进程状况 。
例如:% ps -ef
% ps -aux 然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
2、pstree
pstree(选项)
-a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;
-G:使用VT100终端机的列绘图字符;
-h:列出树状图时,特别标明现在执行的程序;
-H<程序识别码>:此参数的效果和指定”-h”参数类似,但特别标明指定的程序;
-n:用程序识别码排序。预设是以程序名称来排序;
-p:显示程序识别码;
-U:使用UTF-8列绘图字符;
-V:显示版本信息。
3、 top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序。
q:退出top命令
s:设置刷新时间间隔
c:显示命令完全模式
t::显示或隐藏进程和CPU状态信息
m:显示或隐藏内存状态信息
l:显示或隐藏uptime信息
f:增加或减少进程显示标志
S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
u:指定显示用户进程
r:修改进程renice值
kkill:进程
i:只显示正在运行的进程
W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。
h:帮助命令。
4、 htop (需要独自安装)
htop是Linux系统下一个基本文本模式的、交互式的进程查看器,主要用于控制台或shell中,可以替代top,或者说是top的高级版。
htop命令优点:
1) 快速查看关键性能统计数据,如CPU(多核布局)、内存/交换使用;
2) 可以横向或纵向滚动浏览进程列表,以查看所有的进程和完整的命令行;
3) 杀掉进程时可以直接选择而不需要输入进程号;
4) 通过鼠标操作条目;
5) 比top启动得更快;
htop的常用功能
F1 : 查看htop使用说明
F2 : 设置
F3 : 搜索进程
F4 : 过滤器,按关键字搜索
F5 : 显示树形结构
F6 : 选择排序方式
F7 : 减少nice值,这样就可以提高对应进程的优先级
F8 : 增加nice值,这样可以降低对应进程的优先级
F9 : 杀掉选中的进程
F10 : 退出htop
/ : 搜索字符
h : 显示帮助
l :显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
u :显示所有用户,并可以选择某一特定用户的进程
s : 将调用strace追踪进程的系统调用
t : 显示树形结构
H :显示/隐藏用户线程
I :倒转排序顺序
K :显示/隐藏内核线程
M :按内存占用排序
P :按CPU排序
T :按运行时间排序
上下键或PgUP, PgDn : 移动选中进程
左右键或Home, End : 移动列表
Space(空格) : 标记/取消标记一个进程。命令可以作用于多个进程 例如 "kill",将应用于所有已标记的进程