1、查看父进程
ps -ef |grep <进程名>
在显示的输出中,第三列就是该进程的父进程PID,然后可以再使用ps命令来查看父进程的名称
ps -ef |grep <父进程PID>
2、查看线程
ps hH p <pid>
3、ps aux查看进程stat字段含义:
D 不可中断 Uninterruptible sleep (usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
N 低优先级
L 有些页被锁进内存
s 包含子进程
+ 位于后台的进程组;
l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
4、ps命令个参数含义:
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t <终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u 以用户为主的格式来显示程序状况。
13)ps x 显示所有程序,不以终端机来区分。
14)ps -l 較長,較詳細的顯示該PID的信息
# ps -lA |more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 76 0 - 1193 109952 ? 00:00:03 init
1 S 0 2 1 0 -40 - - 0 migrat ? 00:00:03 migration/0
1 S 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
1 S 0 4 1 0 -40 - - 0 migrat ? 00:00:02 migration/1
1 S 0 5 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1
1 S 0 6 1 0 -40 - - 0 migrat ? 00:00:02 migration/2
1 S 0 7 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/2
5、ps的相关命令操作:
whatis ps 查看ps命令的含义
ps a 关于当前shell运行的所有进程
ps ae 关于当前shell运行的所有进程运行环境的详细信息
ps aef 关于当前shell运行的所有进程运行环境以及进程附属关系(简略显示几行,不然看起来太多太复杂)
ps x | head -n 2 显示所有进程,还有状态显示(与ps -A的区别)
ps -a 显示shell前台运行命令的进程,但不包括shell本身
bash 重新打开shell
ps -a 显示shell前台运行命令的进程,但不包括shell本身
ps -o %cpu,%mem,user,group,comm,nice,pid,stat 指定显示进程的某些信息
ps -o comm 指定显示进程名称。