1.PS 概述

1.ps命令用于显示当前进程 (process) 的状态信息数据。
2.ps命令适用于进程的一次性的查看,如果想对进程时间连续性的监控,可以用top命令

top命令使用地址 ​

2.命令格式

ps [options] [--help]

名称:ps
使用权限:所有使用者
说明:显示瞬间行程 (process) 的动态
参数:options 参数,常用参数见下面

3.常用参数

-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行

4.ps命令常用用法

ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有进程。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
ps u  以用户为主的格式来显示程序状况。
ps x  显示所有程序,不以终端机来区分。

5.ps重要命令:ps aux

5.1. 样例

[root@izwz91h49n3mj8r232gqwez ~]# ps -aux 
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 43172 3416 ? Ss Apr21 1:06 /usr/lib/systemd/systemd --system --deserialize 21
root 2 0.0 0.0 0 0 ? S Apr21 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr21 1:24 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Apr21 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Apr21 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S Apr21 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? R Apr21 10:10 [rcu_sched]
root 10 0.0 0.0 0 0 ? S Apr21 0:54 [watchdog/0]
root 12 0.0 0.0 0 0 ? S Apr21 0:00 [kdevtmpfs]
root 13 0.0 0.0 0 0 ? S< Apr21 0:00 [netns]
root 14 0.0 0.0 0 0 ? S Apr21 0:02 [khungtaskd]
root 15 0.0 0.0 0 0 ? S< Apr21 0:00 [writeback]
root 16 0.0 0.0 0 0 ? S< Apr21 0:00 [kintegrityd]
root 17 0.0 0.0 0 0 ? S< Apr21 0:00 [bioset]
root 18 0.0 0.0 0 0 ? S< Apr21 0:00 [kblockd]
root 19 0.0 0.0 0 0 ? S< Apr21 0:00 [md]
root 25 0.0 0.0 0 0 ? S Apr21 0:01 [kswapd0]
root 26 0.0 0.0 0 0 ? SN Apr21 0:00 [ksmd]
root 27 0.0 0.0 0 0 ? SN Apr21 0:26 [khugepaged]
root 28 0.0 0.0 0 0 ? S Apr21 0:00 [fsnotify_mark]
root 29 0.0 0.0 0 0 ? S< Apr21 0:00 [crypto]
root 37 0.0 0.0 0 0 ? S< Apr21 0:00 [kthrotld]
root 39 0.0 0.0 0 0 ? S< Apr21 0:00 [kmpath_rdacd]
root 40 0.0 0.0 0 0 ? S< Apr21 0:00 [kpsmoused]
root 41 0.0 0.0 0 0 ? S< Apr21 0:00 [ipv6_addrconf]
root 60 0.0 0.0 0 0 ? S< Apr21 0:00 [deferwq]
root 93 0.0 0.0 0 0 ? S Apr21 0:00 [kauditd]
root 215 0.0 0.0 0 0 ? S< Apr21 0:00 [ata_sff]
root 234 0.0 0.0 0 0 ? S Apr21 0:00 [scsi_eh_0]
root 236 0.0 0.0 0 0 ? S< Apr21 0:00 [scsi_tmf_0]
root 237 0.0 0.0 0 0 ? S Apr21 0:00 [scsi_eh_1]
root 238 0.0 0.0 0 0 ? S< Apr21 0:00 [scsi_tmf_1]
root 240 0.0 0.0 0 0 ? S< Apr21 0:00 [ttm_swap]
root 251 0.0 0.0 0 0 ? S< Apr21 0:40 [kworker/0:1H]
root 256 0.0 0.0 0 0 ? S Apr21 1:36 [jbd2/vda1-8]
root 257 0.0 0.0 0 0 ? S< Apr21 0:00 [ext4-rsv-conver]
root 323 0.0 0.2 36816 4600 ? Ss Apr21 0:38 /usr/lib/systemd/systemd-journald
root 342 0.0 0.0 43732 1648 ? Ss Apr21 0:00 /usr/lib/systemd/systemd-udevd
root 379 0.0 0.0 0 0 ? S Apr21 0:00 [vballoon]
polkitd 392 0.0 0.4 527628 8156 ? Ssl Apr21 0:18 /usr/lib/polkit-1/polkitd --no-debug
root 393 0.0 0.1 24704 1896 ? Ss Apr21 0:31 /usr/lib/systemd/systemd-logind
dbus 397 0.0 0.0 24452 1484 ? Ss Apr21 0:43 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 461 0.0 0.0 25840 724 ? Ss Apr21 0:00 /usr/sbin/atd -f
root 468 0.0 0.0 110032 596 tty1 Ss+ Apr21 0:00 /sbin/agetty --noclear tty1 linux
root 469 0.0 0.0 110032 596 ttyS0 Ss+ Apr21 0:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyS0 vt220
root 755 0.0 0.7 553144 14716 ? Ssl Apr21 20:31 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 756 0.0 0.3 314156 5912 ? Ssl Apr21 0:15 /usr/sbin/rsyslogd -n
ntp 775 0.0 0.0 29416 1744 ? Ss Apr21 0:48 /usr/sbin/ntpd -u ntp:ntp -g
root 1144 0.0 0.0 122032 1188 ? Sl Apr21 81:37 /usr/local/cloudmonitor/wrapper/bin/./wrapper /usr/local/cloudmonitor/wrapper/bin/../conf/wrapper.conf wrapper.syslog.ident=cl
root 1235 0.4 3.7 2057452 70908 ? Sl Apr21 861:52 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -XX:-UseGCOverheadLimit -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:+UseS
root 2218 0.0 0.1 105476 3560 ? Ss Apr21 0:01 /usr/sbin/sshd -D
root 2582 0.0 0.1 65372 2664 ? Ssl Aug08 6:17 /usr/sbin/aliyun-service
root 12545 0.0 0.0 0 0 ? S Aug31 0:00 [kworker/0:1]
root 14041 0.0 0.1 31716 3476 ? Ssl Aug31 0:25 /usr/local/aegis/aegis_update/AliYunDunUpdate
root 14073 0.2 0.6 130796 11316 ? Ssl Aug31 4:25 /usr/local/aegis/aegis_client/aegis_10_51/AliYunDun
root 14581 0.0 0.0 0 0 ? R Aug31 0:02 [kworker/0:0]
root 15500 0.0 4.3 2488160 81432 ? Sl May08 110:10 /opt/jdk1.8.0_172/bin/java -Djava.util.logging.config.file=/usr/local/tomcats/apache-tomcat-8.5.31/conf/logging.properties -Dj
root 15822 0.0 0.3 37164 7132 ? Sl Apr30 52:18 /usr/redis/redis-server *:6379
root 16165 0.0 0.0 126276 1604 ? Ss Aug21 0:01 /usr/sbin/crond -n
weblogic 18820 0.0 0.0 113308 1612 ? S Jun18 0:00 /bin/sh /weblogic/bea/user_projects/domains/admin/bin/startWebLogic.sh
weblogic 18866 0.0 17.6 832004 332968 ? Sl Jun18 104:11 /weblogic/bea/jdk160_29/bin/java -server -Xms256m -Xmx512m -XX:MaxPermSize=128m -Dweblogic.Name=AdminServer -Djava.security.po
root 21960 0.0 0.3 148832 5704 ? Ss 13:30 0:00 sshd: root@pts/1
root 21962 0.0 0.1 115436 2084 pts/1 Ss 13:30 0:00 -bash
root 23051 0.0 0.0 151108 1844 pts/1 R+ 16:39 0:00 ps -aux
root 25730 0.0 0.0 45812 1100 ? Ss Aug21 0:00 nginx: master process /weblogic/nginx/sbin/nginx
nobody 25731 0.0 0.1 46244 2116 ? S Aug21 0:00 nginx: worker process
root 26729 0.0 0.0 0 0 ? S Aug25 0:00 [kworker/u2:1]
root 31949 0.0 0.0 0 0 ? S Jul30 0:28 [kworker/u2:2]

5.2.解释

USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 进程虚拟大小;
RSS 驻留中页的数量;
TTY 终端ID
STAT 进程状态(有以下几种)
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程(从来没见过);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
WCHAN 正在等待的进程资源;
START 启动进程的时间;
TIME 进程消耗CPU的时间;
COMMAND 命令的名称和参数;

6.ps重要命令:ps -ef|grep java

6.1.样例

[root@izwz91h49n3mj8r232gqwez ~]# ps -ef|grep java
root 1144 1 0 Apr21 ? 01:21:37 /usr/local/cloudmonitor/wrapper/bin/./wrapper /usr/local/cloudmonitor/wrapper/bin/../conf/wrapper.conf wrapper.syslog.ident=cloudmonitor wrapper.pidfile=/usr/local/cloudmonitor/wrapper/bin/./cloudmonitor.pid wrapper.daemonize=TRUE wrapper.name=cloudmonitor wrapper.displayname=cloudmonitor wrapper.statusfile=/usr/local/cloudmonitor/wrapper/bin/./cloudmonitor.status wrapper.java.statusfile=/usr/local/cloudmonitor/wrapper/bin/./cloudmonitor.java.status wrapper.lockfile=/var/lock/subsys/cloudmonitor wrapper.script.version=3.5.27
root 1235 1144 0 Apr21 ? 14:21:53 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -XX:-UseGCOverheadLimit -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:+UseSerialGC -Djava.io.tmpdir=../../tmp -Xms16m -Xmx32m -Djava.library.path=../lib:../../lib -classpath ../lib/wrappertest.jar:../lib/wrapper.jar:../../config:../../lib/agent-commons-1.2.22.jar:../../lib/agent-core-1.2.22.jar:../../lib/agent-model-1.2.22.jar:../../lib/aopalliance-1.0.jar:../../lib/commons-logging-1.2.jar:../../lib/commons-net-3.5.jar:../../lib/gson-2.4.jar:../../lib/jvm-plugin-1.2.22.jar:../../lib/log4j-1.2.16.jar:../../lib/metrics-core-3.0.2.jar:../../lib/sigar-1.6.5.132.jar:../../lib/slf4j-api-1.7.5.jar:../../lib/spring-aop-4.2.4.RELEASE.jar:../../lib/spring-beans-4.2.4.RELEASE.jar:../../lib/spring-context-4.2.4.RELEASE.jar:../../lib/spring-core-4.2.4.RELEASE.jar:../../lib/spring-expression-4.2.4.RELEASE.jar:../../lib/system-plugin-1.2.22.jar:../../lib/updater-1.2.22-jar-with-dependencies.jar -Dwrapper.key=VxqAK2C3uiUtelvk -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.disable_console_input=TRUE -Dwrapper.pid=1144 -Dwrapper.version=3.5.27 -Dwrapper.native_library=wrapper -Dwrapper.arch=x86 -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 com.aliyun.tianji.cloudmonitor.Application
root 15500 1 0 May08 ? 01:50:10 /opt/jdk1.8.0_172/bin/java -Djava.util.logging.config.file=/usr/local/tomcats/apache-tomcat-8.5.31/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcats/apache-tomcat-8.5.31/bin/bootstrap.jar:/usr/local/tomcats/apache-tomcat-8.5.31/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcats/apache-tomcat-8.5.31 -Dcatalina.home=/usr/local/tomcats/apache-tomcat-8.5.31 -Djava.io.tmpdir=/usr/local/tomcats/apache-tomcat-8.5.31/temp org.apache.catalina.startup.Bootstrap start
weblogic 18866 18820 0 Jun18 ? 01:44:12 /weblogic/bea/jdk160_29/bin/java -server -Xms256m -Xmx512m -XX:MaxPermSize=128m -Dweblogic.Name=AdminServer -Djava.security.policy=/weblogic/bea/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -da -Dplatform.home=/weblogic/bea/wlserver_10.3 -Dwls.home=/weblogic/bea/wlserver_10.3/server -Dweblogic.home=/weblogic/bea/wlserver_10.3/server -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/weblogic/bea/patch_wls1036/profiles/default/sysext_manifest_classpath:/weblogic/bea/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server
root 23069 21962 0 16:41 pts/1 00:00:00 grep --color=auto java
[root@izwz91h49n3mj8r232gqwez ~]#

6.2.解释