ps 命令有两种不一样的语法风格 —— BSD 与 UNIX 两种风格。新手经常对这两种形式产生误解,所以咱们有必要在这里做一个简单的说明:python
ps aux 与 ps -aux 是不一样的,例如 -u 参数表示打印进程的 uid,而参数 u 表示显示进程的详细信息。bash
$ ps aux
$ ps -aux
两种格式是容许混用的,例如 ps ax -f,但本文主要展现UNIX风格。ui
$ ps ax $ ps -e
加上 -f 或者 u 参数能够显示进程的详细信息线程
$ ps aux $ ps -ef
注:当用户名超过8个字符时,以uid显示;小于等于8字符时,以用户名显示。rest
$ ps -f -u nova,neutron
$ ps -C neutron-server # -C 只能搜索名为neutron-server的进程(彻底匹配),不能使用部分搜索或者通配符,例如 ps -C neutron 就不会显示neutron-server进程。所以部分匹配用 ps -ef | grep neutron $ ps -f -p 3150,7298,6544
$ ps aux --sort=-pcpu,+pmem # 首先以 cpu 使用量排序呢, 若是 cpu 使用量相同,则之内存使用量排序。 $ ps aux --sort=-pcpu,+pmem | head 5
$ ps -ef --forest $ ps -f --forest -C neutron-server
$ ps -o pid,uname,comm -C neutron-server 28208 hebin neutron-server 28221 hebin neutron-server 28222 hebin neutron-server 28223 hebin neutron-server 28224 hebin neutron-server 28225 hebin neutron-server $ ps --ppid 28208 PID TTY TIME CMD 28221 pts/12 00:00:06 neutron-server 28222 pts/12 00:00:06 neutron-server 28223 pts/12 00:01:02 neutron-server 28224 pts/12 00:00:52 neutron-server 28225 pts/12 00:00:28 neutron-server
$ ps -ef | grep rock-mon root 14447 1 0 12:47 ? 00:02:01 /usr/bin/python /usr/bin/rock-mon root 32279 31077 0 23:03 pts/0 00:00:00 grep --color=auto rock-mon $ ps -p 14447 -L PID LWP TTY TIME CMD 14447 14447 ? 00:00:00 rock-mon 14447 14480 ? 00:00:09 rock-mon 14447 14483 ? 00:00:00 rock-mon 14447 597 ? 00:00:00 rock-mon 14447 759 ? 00:00:00 rock-mon
$ ps -e -o pid,uname,pcpu,pmem,comm $ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm
$ ps -e -o pid,comm,etime
$ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'