1、功能简介
报告当前进程[root@vms002 /]# whatis ps
ps (1) - report a snapshot of the current processes. #报告当前进程的快照
ps (1p) - report process status #报告进程状态
2、命令语法[root@vms002 /]# man ps
SYNOPSIS
ps [options]
3、常用选项选项含义
-A列出所有的进程
-w显示加宽,可以显示较多的信息
-a显示现行终端机下的所有进程,包括其他用户的进程
-u以用户为主的进程状态
-x通常与a这个参数一起使用,可列出较完整信息
-r只显示正在运行的进程
-h不显示标题
-e显示所有进程,环境变量
-f全格式
-l长格式
--help显示帮助信息
--version显示版本信息
常用选项组合:
1)ps -ef #用标准的格式显示进程
2)ps -aux #用BSD的格式来显示
4、ps -ef和ps -aux格式详解
1)ps -ef 标准格式[root@vms001 /]# ps -ef|head -3
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 6月04 ? 00:00:09 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root 2 0 0 6月04 ? 00:00:00 [kthreadd]
格式详解:UIDPIDPPIDCSTIMETTYTIMECMD
用户ID进程ID父进程ID进程占用CPU的百分比进程启动的时间该进程在哪个终端上运行,若与终端无关,则显示?若为pts/0等,则表示由网络连接主机进程该进程实际使用CPU运行的时间命令的名称和参数
2)ps -aux BSD格式[root@vms001 /]# ps -aux|head -3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 60592 7936 ? Ss 6月04 0:09 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root 2 0.0 0.0 0 0 ? S 6月04 0:00 [kthreadd]
格式详解:USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIME
用户名进程的ID进程占用的CPU百分比进程占用内存的百分比该进程使用的虚拟内存量(KB)该进程占用的固定内存量(KB)该进程在哪个终端上运行,若与终端无关,则显示?若为pts/0等,则表示由网络连接主机进程进程的状态该进程实际使用CPU运行的时间COMMAND
命令的名称和参数
5、Linux上的进程状态进程状态ps命令对应的状态码含义
运行R运行runnable(on run queue)正在运行或在运行队列中等待
中断S中断sleeping休眠中,受阻,在等待某个条件的形成或接受到信号
不可中断D不可中断uninterruptible sleep (usually IO)收到信号不唤醒和不可运行,进程必须等待直到有中断发生
僵死Z僵死a defunct ("zombie") process进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放
停止T停止traced or stopped进程收到SIGSTOP、SIGSTP、SIGTIN、SIGTOU信号后停止运行
其中STAT状态位常见的状态字符有
D //无法中断的休眠状态(通常 IO 的进程);
R //正在运行可中在队列中可过行的;
S //处于休眠状态;
T //停止或被追踪;
W //进入内存交换 (从内核2.6开始无效);
X //死掉的进程 (基本很少见);
Z //僵尸进程;
N //优先级较低的进程
L //有些页被锁进内存;
s //进程的领导者(在它之下有子进程);
l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ //位于后台的进程组;