ps命令


功能说明


ps命令用于系统进程在瞬间的运行动态。用法如下:


ps [选项] [-s (间隔秒数)]

常用参数

选项

含义

a

显示所有用户的进程,包含每个程序的完整路径

-x

显示所有系统程序,包括哪此没有终端的程序

-u

显示使用都的名称和起始时间

-f

详细显示程序执行的路径群

-c

只显示进程的名称,不显示进程的完整路径

-e

将除内核进程以外所有进程的信息写到标准输出(等同于-A)

常用组合:

ps aux 最常用 #列出目前所有的正在内存当中的程序

ps -ef #显示所有进程信息,连同命令行

ps axjf #以树形结构显示进程


示例

使用-e参数,显示所有进程(等同于-A)


[root@c7 ~]# ps -e | less #由于行多,使用less来逐页显示

PID TTY TIME CMD

1 ? 00:00:04 systemd

2 ? 00:00:00 kthreadd

3 ? 00:00:03 ksoftirqd/0

5 ? 00:00:00 kworker/0:0H

7 ? 00:00:00 migration/0

8 ? 00:00:00 rcu_bh

9 ? 00:00:00 rcuob/0

10 ? 00:00:00 rcuob/1

......略

使用-ef参数,显示所有进程信息,连同命令行


[root@c7 ~]# ps -ef | less

UID         PID   PPID  C STIME TTY          TIME CMD

root          1      0  0 11月16 ?      00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 24

root          2      0  0 11月16 ?      00:00:00 [kthreadd]

root          3      2  0 11月16 ?      00:00:03 [ksoftirqd/0]

root          5      2  0 11月16 ?      00:00:00 [kworker/0:0H]

root          7      2  0 11月16 ?      00:00:00 [migration/0]

.......略

 检查Apache进程

[root@c7 ~]# ps -ef | grep httpd

说明:

  • UID 运行进程的用户

  • PID 是进程的标识号

  • PPID 是父进程的标识号

  • C   CPU调度情况

  • STIME 进程启动的时间

  • TTY 是进程所属的终端控制台

  • TIME 列是进程所使用的总的CPU时间

  • CMD 启动进程的命令

   使用aux参数,显示目前所有正在内存中的程序

[root@c7 ~]# ps aux | less

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.3 57564 7472 ? Ss 11月16 0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 24

root 2 0.0 0.0 0 0 ? S 11月16 0:00 [kthreadd]

root 3 0.0 0.0 0 0 ? S 11月16 0:03 [ksoftirqd/0]

root 5 0.0 0.0 0 0 ? S< 11月16 0:00 [kworker/0:0H]

root 7 0.0 0.0 0 0 ? S 11月16 0:00 [migration/0]

root 8 0.0 0.0 0 0 ? S 11月16 0:00 [rcu_bh]

root 9 0.0 0.0 0 0 ? S 11月16 0:00 [rcuob/0]

.......略

[root@rsync01 ~]# ps aux | egrep '(apache|nagios)'#同时查询apache和nagios程序的进程

nagios 1125 0.0 0.0 39244 1372 ? Ss Nov18 0:37 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

apache 4543 0.0 0.3 254976 7524 ? S Nov20 0:00 /usr/sbin/httpd

apache 4544 0.0 0.3 254824 6552 ? S Nov20 0:00 /usr/sbin/httpd

apache 4545 0.0 0.4 255568 7648 ? S Nov20 0:00 /usr/sbin/httpd

apache 4546 0.0 0.3 254824 6548 ? S Nov20 0:00 /usr/sbin/httpd

apache 4547 0.0 0.4 256088 9088 ? S Nov20 0:00 /usr/sbin/httpd

apache 4548 0.0 0.3 254824 6560 ? S Nov20 0:00 /usr/sbin/httpd

apache 4550 0.0 0.4 256088 9044 ? S Nov20 0:00 /usr/sbin/httpd

apache 4552 0.0 0.4 254976 7808 ? S Nov20 0:00 /usr/sbin/httpd

root 7545 0.0 0.0 4152 700 pts/1 R+ 13:53 0:00 egrep (apache|nagios)


说明:

  • USER:该 process 属于那个使用者账号的
  • PID :该 process 的号码
  • %CPU:该 process 使用掉的 CPU 资源百分比
  • %MEM:该 process 所占用的物理内存百分比
  • VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
  • RSS :该 process 占用的固定的内存量 (Kbytes)
  • TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
  • STAT:该程序目前的状态,主要的状态有
  • R :该程序目前正在运作,或者是可被运作
  • S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
  • T :该程序目前正在侦测或者是停止了
  • Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
  • START:该 process 被触发启动的时间
  • TIME :该 process 实际使用 CPU 运作的时间
  • COMMAND:该程序的实际指令

    使用pstree,以树状显示进程


[root@rsync01 ~]# pstree

init-+-auditd---{auditd}

|-cachefilesd

|-crond

|-httpd---8*[httpd]

|-master-+-cleanup

| |-local

| |-pickup

| `-qmgr

|-6*[mingetty]

|-nrpe

|-rsyslogd---3*[{rsyslogd}]

|-sshd---bash---pstree

|-sshd

`-udevd---2*[udevd]


学习自:

高俊峰《循序渐进Linux》