ps 功能说明:ps命令用户列出命令的那个时刻的进程快照,就像用手机给进程找了一张照片。 如果想要动态显示进程的信息,就需要使用top命令,该命令类似于把手机切换成录像模式。 参数选项: -a 显示所有终端下执行的进程。 a 显示终端相关的所有进程,包含每个进程的完整路径。 x 显示与终端无关的所有进程。 u 显示进程的用户信息。 -u 显示指定用户相关的进程信息。 -e 显示所有进程。 -f 额外显示UID、PPID、C与STIME栏位。 f 显示进程树。 -H 显示进程树。 -l 以详细的格式来显示进程的状况。 -o 自定义输出指定的字段,以逗号分隔。 --sort key key表示指定字段排序,默认升序,+key升序,-key降序。 范例:不加任何参数 [root@testdb62 ~]# ps PID TTY TIME CMD 29122 pts/3 00:00:00 bash 29221 pts/3 00:00:00 su 29243 pts/3 00:00:00 sudo 29246 pts/3 00:00:00 su 29248 pts/3 00:00:00 bash 30672 pts/3 00:00:00 ps 说明:不加任何参数时,输出的是使用者当前所在的终端 PID: 进程的标识号。 TTY: 进程所属的终端控制台。 TIME: 进程所使用的总的CPU时间。 CMD: 正在执行的命令行。 范例:ps命令常用操作组合(ps -ef) [root@testdb62 ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Oct13 ? 00:24:11 /usr/lib/systemd/systemd --switched-root --system --deserialize 2 root 2 0 0 Oct13 ? 00:00:02 [kthreadd] root 4 2 0 Oct13 ? 00:00:00 [kworker/0:0H] root 6 2 0 Oct13 ? 00:00:45 [ksoftirqd/0] root 7 2 0 Oct13 ? 00:00:23 [migration/0] root 8 2 0 Oct13 ? 00:00:00 [rcu_bh] root 9 2 0 Oct13 ? 00:16:16 [rcu_sched] root 10 2 0 Oct13 ? 00:00:00 [lru-add-drain] 说明:-ef 是UNIX格式参数。 UID: 进程被该UID所拥有。 PID: 进程的标识号。 PPID: 进程的父进程的标识号。 C: CPU使用的资源百分比。 STIME: 进程开始的时间。 TTY: 进程所属的终端控制台,若与终端机无关,则显示"?",tty1-tty6是本机上面的登入者进程,如果pts/0等,则表示为由网络连接进主机的进程。 TIME: 进程所使用的总的CPU时间。 CMD: 正在执行的命令行。 ps和grep组合用法,用于查找特定进程 [root@testdb62 ~]# ps -ef|grep ssh root 1246 1 0 Oct13 ? 00:00:06 /usr/sbin/sshd -D root 8302 1246 0 16:00 ? 00:00:00 sshd: root@pts/2 root 9248 21497 0 16:18 pts/0 00:00:00 grep --color=auto ssh root 21494 1246 0 09:35 ? 00:00:00 sshd: root@pts/0 范例:ps命令常用操作组合(ps aux) [root@testdb62 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 191128 3340 ? Ss Oct13 24:11 /usr/lib/systemd/systemd --switched-root --syste root 2 0.0 0.0 0 0 ? S Oct13 0:02 [kthreadd] root 4 0.0 0.0 0 0 ? S< Oct13 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S Oct13 0:46 [ksoftirqd/0] root 7 0.0 0.0 0 0 ? S Oct13 0:23 [migration/0] root 8 0.0 0.0 0 0 ? S Oct13 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S Oct13 16:17 [rcu_sched] root 10 0.0 0.0 0 0 ? S< Oct13 0:00 [lru-add-drain] 说明:aux 是bsd格式参数。 USER: 该进程属于的用户。 PID: 该进程的标识号。 %CPU: 该进程使用掉的CPU资源百分比。 %MEM: 该进程所占用的物理内容百分比。 VSZ: 该进程使用掉的虚拟内存量(单位为Kbytes)。 RSS: 该进程占用的固定的内存量(单位为Kbytes)。 TTY: 进程所属的终端控制台,若与终端机无关,则显示"?",tty1-tty6是本机上面的登入者进程,如果pts/0等,则表示为由网络连接进主机的进程。 STAT: 该进程目前的状态,主要的状态包括如下: R: 正在运行,或者是可以运行。 S: 正在中断睡眠, 可以由某些信号(signal)唤醒。 D: 不可中断睡眠。 T: 正在侦测或者是停止了。 Z: 已经终止,但是其父进程无法正常终止它,从而变成zombie(僵尸)进程。 +: 前台进程。 l: 多线程进程。 N: 低优先级进程。 <: 高优先级进程。 L: 已将页面锁定到内存中。 START: 该进程被触发启动的时间。 TIME: 该进程实际使用CPU运作的时间。 COMMAND: 该进程的实际命令。 范例:指定用户的相关进程信息 [root@testdb62 ~]# ps -u root PID TTY TIME CMD 1 ? 00:24:12 systemd 2 ? 00:00:02 kthreadd 4 ? 00:00:00 kworker/0:0H 6 ? 00:00:46 ksoftirqd/0 7 ? 00:00:23 migration/0 8 ? 00:00:00 rcu_bh 9 ? 00:16:17 rcu_sched 10 ? 00:00:00 lru-add-drain 范例:以详细的格式显示进程状况 [root@testdb62 ~]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 R 0 10690 21497 0 80 0 - 38304 - pts/0 00:00:00 ps 4 S 0 21497 21494 0 80 0 - 28895 do_wai pts/0 00:00:00 bash 说明: 此命令是UNIX格式参数 F: S: UID: 进程被该UID所拥有。 PID: 进程的标识号。 PPID: 进程的父进程的标识号。 C: CPU使用的资源百分比。 PRI: Priority(优先执行顺序)的缩写。 NI: Nice值。 ADDR: 指出该进程在内存的哪个部分。如果是个running的进程,则一般是"-"。 SZ: 使用掉的内存大小。 WCHAN: 目前这个进程是否在运作当中,若为"-"则表示正在运作。 TTY: 进程所属的终端控制台,若与终端机无关,则显示"?",tty1-tty6是本机上面的登入者进程,如果pts/0等,则表示为由网络连接进主机的进程。 TIME: 该进程实际使用CPU运作的时间。 CMD: 该进程的实际命令。 范例:显示进程树(ps -eH UNIX格式参数) [root@testdb62 ~]# ps -eH PID TTY TIME CMD 2 ? 00:00:02 kthreadd 4 ? 00:00:00 kworker/0:0H 6 ? 00:00:46 ksoftirqd/0 7 ? 00:00:23 migration/0 1004 ? 00:01:08 crond 1246 ? 00:00:06 sshd 21494 ? 00:00:00 sshd 21497 pts/0 00:00:00 bash 11606 pts/0 00:00:00 ps 8302 ? 00:00:00 sshd 8305 pts/2 00:00:00 bash 1247 ? 00:12:45 tuned 1251 ? 00:05:00 rsyslogd 1256 tty1 00:00:00 agetty 1302 ? 00:00:00 rhsmcertd 12944 ? 00:34:37 frpc 10735 ? 00:00:00 mysqld_safe 范例:显示进程树(ps axf BSD格式参数) [root@testdb62 ~]# ps axf PID TTY STAT TIME COMMAND 2 ? S 0:02 [kthreadd] 4 ? S< 0:00 \_ [kworker/0:0H] 1 ? Ss 24:12 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 21494 ? Ss 0:00 \_ sshd: root@pts/0 21497 pts/0 Ss 0:00 | \_ -bash 11846 pts/0 R+ 0:00 | \_ ps axf 8302 ? Ss 0:00 \_ sshd: root@pts/2 8305 pts/2 Ss+ 0:00 \_ -bash 1247 ? Ssl 12:45 /usr/bin/python2 -Es /usr/sbin/tuned -l -P 1251 ? Ssl 5:00 /usr/sbin/rsyslogd -n 1256 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux 1302 ? Ss 0:00 /usr/bin/rhsmcertd 12944 ? Ssl 34:37 /usr/bin/frpc -c /etc/frpc.ini 10735 ? S 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/ 11250 ? Sl 57:16 \_ /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plu 13712 ? Sl 27:47 mysqld --defaults-file=/etc/my_3308.cnf 13746 ? Sl 27:50 mysqld --defaults-file=/etc/my_3307.cnf 22126 ? Sl 9:46 /usr/bin/frpc -c /etc/frpc.ini 范例:查看某个进程在哪个CPU上运行 [root@testdb62 ~]# ps -eo pid,args,psr PID COMMAND PSR 1 /usr/lib/systemd/systemd -- 1 2 [kthreadd] 0 4 [kworker/0:0H] 0 6 [ksoftirqd/0] 0 7 [migration/0] 0 8 [rcu_bh] 0