linux ps命令详解
ps命令(全称:process status)是linux查看当前系统中进程状态的常用命令,比如我们可以通过以下命令查看当前系统所有进程信息:
ps -aux
执行结果如下:
如果查看指定的进程,如java进程,可以通过管道符和grep命令进行过滤,命令如下:
ps -aux|grep java
执行结果如下:
ps命令详细介绍
ps命令的用法如下:
ps [options]
options表示命令参数,详细的参数列表如下:
-A 显示所有进程(等价于-e)
-a 显示一个终端的所有进程,除了会话引线
-e 显示所有进程(等价于-A)
-N 忽略选择
-d 显示所有进程,但省略所有的会话引线
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程
U username 显示该用户下的所有进程,且显示各个命令的详细路径,如:ps U admin;ps -fU root
-f 全部列出,通常和其他选项联用
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)
e 命令之后显示环境
h 不显示第一行
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本信息
针对STAT(进程当前状态)的描述如下:
D 无法中断的休眠状态(通常 IO 的进程)
R 正在运行可中在队列中可过行的
S 处于休眠状态
T 停止或被追踪
W 进入内存交换 (从内核2.6开始无效)
X 死掉的进程 (基本很少见)
Z 僵尸进程
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存
s 进程的领导者(在它之下有子进程)
l 多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组
实例操作
1. 杀掉java进程(慎用)
#查看java进程 ps -aux|grep java #获取java进程号,如55555,通过kill命令关闭进程(-9表示强制关闭) kill -9 55555
是不是觉得很麻烦,那么就用一个命令表达式来完成上面的功能
#要确保当前系统只有一个java进程,防止误杀 ps -uax|grep java|awk '{print $2}'|xargs kill -9
2. 查看cpu占用率前10的进程
#这里head命令后的11,包含第1行的列信息
ps -aux --sort=-pcpu|head -11