来源《鸟哥的linux私房菜》 html
ps:将某个时间点的程序运做状况撷取下来 linux
[root@linux~]# ps aux
[root@linux~]# ps -lA
[root@linux~]# ps axjf
参数:
-A:全部的 process 均显示出来,与 -e 具备一样的效用;
-a :不与 terminal 有关的全部 process ;
-u :有效使用者 (effective user) 相关的 process ;
x :一般与 a 这个参数一块儿使用,可列出较完整信息。
输出格式规划:
l :较长、较详细的将该PID的的信息列出;
j :工做的格式 (jobs format)
-f :作一个更为完整的输出。
特别说明:
因为 ps 可以支持的OS类型至关的多,因此他的参数多的离谱!
并且有没有加上 - 差不少!详细的用法应该要参考 man ps 喔!
|
范例1:将目前属于您本身此次登入的 PID 与相关信息列示出来 shell
[root@linux~]# ps -l
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
0S0588156540760-1303wait pts/000:00:00su
4S0588258810750-1349wait pts/000:00:00bash
4R0603758820760-1111- pts/000:00:00ps
|
# 上面这个信息其实不少喔!各相关信息的意义为:
# F 表明这个程序的旗标 (flag), 4 表明使用者为 super user;
# S 表明这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍;
# PID 没问题吧!?就是这个程序的 ID 啊!底下的 PPID 则上父程序的 ID;
# C CPU 使用的资源百分比
# PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍;
# NI 这个是 Nice 值,在下一小节咱们会持续介绍。
# ADDR 这个是 kernel function,指出该程序在内存的那个部分。若是是个 running
# 的程序,通常就是『 - 』的啦!
# SZ 使用掉的内存大小;
# WCHAN 目前这个程序是否正在运做当中,若为 - 表示正在运做;
# TTY 登入者的终端机位置啰;
# TIME 使用掉的 CPU 时间。
# CMD 所下达的指令为什么!?
# 仔细看到每个程序的 PID 与 PPID 的相关性为什么喔!上头列出的三个程序中,
# 彼此间但是有相关性的吶!
|
范例2:列出目前全部的正在内存当中的程序 bash
[root@linux~]# ps aux
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
root10.00.11740540?SJul250:01init [3]
root20.00.000?SNJul250:00[ksoftirqd/0]
root30.00.000?S< Jul250:00[events/0]
.....中间省略.....
root58810.00.352121204pts/0S10:220:00su
root58820.00.353961524pts/0S10:220:00bash
root61420.00.24488916pts/0R+11:450:00ps aux
|
•USER:该 process 属于那个使用者帐号的?
•PID:该 process 的号码。
• %CPU:该 process 使用掉的CPU资源百分比;
• %MEM:该 process 所占用的物理内存百分比;
•VSZ:该 process 使用掉的虚拟内存量 (Kbytes)
•RSS:该 process 占用的固定的内存量 (Kbytes)
•TTY:该 process 是在那个终端机上面运做,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0等等的,则表示为由网络链接进主机的程序。
•STAT:该程序目前的状态,主要的状态有:
oR:该程序目前正在运做,或者是可被运做;
oS:该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号 (signal) 唤醒。
oT:该程序目前正在侦测或者是中止了;
oZ:该程序应该已经终止,可是其父程序却没法正常的终止他,形成 zombie (疆尸) 程序的状态
•START:该 process 被触发启动的时间;
•TIME:该 process 实际使用CPU运做的时间。
•COMMAND:该程序的实际指令为什么?
|
范例3:以范例一的显示内容,显示出全部的程序 网络
[root@linux~]# ps -lA
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
4S0100760-435- ?00:00:01init
1S02109419-0ksofti ?00:00:00ksoftirqd/0
1S031070-5-0worker ?00:00:00events/0
.....如下省略.....
|
范例4:列出相似程序树的程序显示 ssh
[root@linux~]# ps -axjf
PPIDPIDPGIDSIDTTYTPGIDSTATUIDTIMECOMMAND
0100? -1S00:01init [3]
1200? -1SN00:00[ksoftirqd/0]
.....中间省略.....
1528152815281? -1Ss00:00/usr/sbin/sshd
5281565156515651? -1Ss00:00\_sshd: dmtsai [priv]
5651565356515651? -1S5000:00\_sshd: dmtsai@pts/0
5653565456545654pts/06151Ss5000:00\_-bash
5654588158815654pts/06151S00:00\_su
5881588258825654pts/06151S00:00\_bash
5882615161515654pts/06151R+00:00\_ps -axjf
|
范例5:找出与 cron 与 syslog 这两个服务有关的 PID 号码 spa
[root@linux~]# ps aux | egrep '(cron|syslog)'
root15390.00.11616616? Ss Jul250:03syslogd -m0
root16760.00.245441128? Ss Jul250:00crond
root61570.00.13764664pts/0R+12:100:00egrep (cron|syslog)
|
在预设的状况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,因此, 当我使用 ps -l 的时候,只有三个 PID (范例一)。 orm