linux 常用命令之 ps

tldr ps

 tldr psInformation about running processes.  - List all running processes:    ps aux  - List all running processes including the full command string:    ps auxww  - Search for a process that matches a string:    ps aux | grep string  - List all processes of the current user in extra full format:    ps --user $(id -u) -F  - List all processes of the current user as a tree:    ps --user $(id -u) f  - Get the parent pid of a process:    ps -o ppid= -p pid  - To see every process on the system using standard syntax:    ps -e    ps -ef    ps -eF    ps -ely  - To see every process on the system using BSD syntax:    ps ax    ps axu  - To print a process tree:    ps -ejH    ps axjf  - To get info about threads:    ps -eLf    ps axms  - To get security info:    ps -eo euser,ruser,suser,fuser,f,comm,label    ps axZ    ps -eM  - To see every process running as root (real & effective ID) in user format:    ps -U root -u root u  - To see every process with a user-defined format:    ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm    ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm    ps -eopid,tt,user,fname,tmout,f,wchan  - Print only the process IDs of syslogd:    ps -C syslogd -o pid=  - Print only the name of PID 42:    ps -q 42 -o comm=

ps 命令参数语法

ps命令的参数支持三种语法格式:

  1. UNIX options, which may be grouped and must be preceded by a dash -.
  2. BSD options, which may be grouped and must not be used with a dash -.
  3. GNU long options, which are preceded by two dashes --.

ps 命令行 UNIX 风格参数简单说明

  1. 部分参数是为了在所有进程中选择参数指定的那部分进程,如-e显示全部进程
  2. 部分参数是为控制输出结果的,如-o控制字段显示
  3. 部分参数是最后对前面的输出结果进行修正的,如--sort按指定字段排序

这里只显示了部分参数的简单说明,不是全部参数,更多的可以看官方手册说明man ps

ps 进程选择相关的参数

  1. -C 以指定命令显示
  2. -A 显示所有进程(等价于-e)
  3. -e 显示全部进程,同-A
  4. -g grplist 按组 id 或者组名显示
  5. -p pidlist 按进程 id 显示
  6. -u userlist 按用户id或者是用户名显示
  7. -t ttylist 按 tty 显示

ps 输出字段相关的参数

  1. -f 全部列出,通常和其他选项联用,如:ps -fa 或者 ps -fx
  2. -F 显示-f之外的一些字段
  3. -l 显示的字段更多些,常用如:ps -ely
  4. -o 用户自定义显示字段格式
  5. -O 除用户自定义显示字段,还有默认显示的一些字段

ps 输出结果修改参数

  1. -H 显示进程的层次(和其它的命令合用,如:ps -Ha 或者 ps -ejH)
  2. --sort 按指定字段排序,如:ps jax --sort=uid,-ppid,+pid

ps -o 用户自定义输出字段格式说明

这里只简单列出来ps -o支持的标准格式中的部分字段及简短说明,ps另外支持 AIX 的字段格式输出。

| CODE       |  HEADER    | DESCRIPTION---------------------------------------------------------------------------------------------------------------------------------------------------| %cpu       |  %CPU      | cpu utilization of the process in "##.#" format. (alias pcpu)| %mem       |  %MEM      | ratio of the process's resident set size to the physical memory on the machine, expressed as a percentage. (alias pmem).| args       |  COMMAND   | command with all its arguments as a string.| bsdstart   |  START     | time the command started.| bsdtime    |  TIME      | accumulated cpu time, user + system. The display format is usually "MMM:SS"| cmd        |  CMD       | see args. (alias args, command).| comm       |  COMMAND   | command name (only the executable name).| command    |  COMMAND   | see args. (alias args, cmd).| cp         |  CP        | per-mill (tenths of a percent) CPU usage. (see %cpu).| cputime    |  TIME      | cumulative CPU time, "[dd-]hh:mm:ss" format. (alias time).| egid       |  EGID      | effective group ID number of the process as a decimal integer. (alias gid).| egroup     |  EGROUP    | effective group ID of the process. (alias group).| etime      |  ELAPSED   | elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.| euid       |  EUID      | effective user ID. (alias uid).| euser      |  EUSER     | effective user name. (alias uname, user).| f          |  F         | flags associated with the process, see the PROCESS FLAGS section. (alias flag, flags).| fgid       |  FGID      | filesystem access group ID. (alias fsgid).| fgroup     |  FGROUP    | filesystem access group ID. (alias fsgroup).| fname      |  COMMAND   | first 8 bytes of the base name of the process's executable file.| fuid       |  FUID      | filesystem access user ID. (alias fsuid).| gid        |  GID       | see egid. (alias egid).| group      |  GROUP     | see egroup. (alias egroup).| lstart     |  STARTED   | time the command started. See also bsdstart, start, start_time, and stime.| ni         |  NI        | nice value. This ranges from 19 (nicest) to -20 (not nice to others), see nice(1). (alias nice).| nlwp       |  NLWP      | number of lwps (threads) in the process. (alias thcount).| pcpu       |  %CPU      | see %cpu. (alias %cpu).| pgid       |  PGID      | process group ID or, equivalently, the process ID of the process group leader. (alias pgrp).| pgrp       |  PGRP      | see pgid. (alias pgid).| pid        |  PID       | process ID number of the process.| pmem       |  %MEM      | see %mem. (alias %mem).| ppid       |  PPID      | parent process ID.| pri        |  PRI       | priority of the process. Higher number means lower priority| psr        |  PSR       | processor that process is currently assigned to.| rgid       |  RGID      | real group ID.| rgroup     |  RGROUP    | real group name.| rss        |  RSS       | resident set size, the non-swapped physical memory that a task has used (in kiloBytes). (alias rssize, rsz).| rssize     |  RSS       | see rss. (alias rss, rsz).| rsz        |  RSZ       | see rss. (alias rss, rssize).| rtprio     |  RTPRIO    | realtime priority.| ruid       |  RUID      | real user ID.| s          |  S         | minimal state display (one character). (alias state).| sid        |  SID       | see sess. (alias sess, session).| sig        |  PENDING   | see pending. (alias pending, sig_pend).| sigcatch   |  CAUGHT    | see caught. (alias caught, sig_catch).| sigignore  |  IGNORED   | see ignored. (alias ignored, sig_ignore).| sigmask    |  BLOCKED   | see blocked. (alias blocked, sig_block).| size       |  SZ        | approximate amount of swap space . This number is very rough!| spid       |  SPID      | see lwp. (alias lwp, tid).| stackp     |  STACKP    | address of the bottom (start) of stack for the process.| start      |  STARTED   | time the command started.| start_time |  START     | starting time or date of the process.| stat       |  STAT      | multi-character process state.| state      |  S         | see s. (alias s).| suid       |  SUID      | saved user ID. (alias svuid).| suser      |  SUSER     | saved user name.| svgid      |  SVGID     | see sgid. (alias sgid).| svuid      |  SVUID     | see suid. (alias suid).| sz         |  SZ        | size in physical pages of the core image of the process.| thcount    |  THCNT     | see nlwp. (alias nlwp). number of kernel threads owned by the process.| tid        |  TID       | see lwp. (alias lwp).| time       |  TIME      | cumulative CPU time, "[dd-]hh:mm:ss" format. (alias cputime).| tname      |  TTY       | controlling tty (terminal). (alias tt, tty).| tt         |  TT        | controlling tty (terminal). (alias tname, tty).| tty        |  TT        | controlling tty (terminal). (alias tname, tt).| ucmd       |  CMD       | see comm. (alias comm, ucomm).| ucomm      |  COMMAND   | see comm. (alias comm, ucmd).| uid        |  UID       | see euid. (alias euid).| uname      |  USER      | see euser. (alias euser, user).| user       |  USER      | see euser. (alias euser, uname).| vsize      |  VSZ       | see vsz. (alias vsz).| vsz        |  VSZ       | virtual memory size of the process in KiB (alias vsize).| wchan      |  WCHAN     | name of the kernel function in which the process is sleeping, a "-" if the process is running.

ps examples

ps -eF

 ps -eF | headUID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMDroot         1     0  0 39971  7632   0 Jun09 ?        00:00:05 /sbin/initroot         2     0  0     0     0   0 Jun09 ?        00:00:00 [kthreadd]root         4     2  0     0     0   0 Jun09 ?        00:00:00 [kworker/0:0H]root         6     2  0     0     0   0 Jun09 ?        00:00:00 [mm_percpu_wq]root         7     2  0     0     0   0 Jun09 ?        00:00:00 [ksoftirqd/0]root         8     2  0     0     0   0 Jun09 ?        00:00:01 [rcu_sched]root         9     2  0     0     0   0 Jun09 ?        00:00:00 [rcu_bh]root        10     2  0     0     0   0 Jun09 ?        00:00:00 [migration/0]root        11     2  0     0     0   0 Jun09 ?        00:00:00 [watchdog/0]

ps -f -u root,git,sshd

 ps -f -u root,git,sshdUID        PID  PPID  C STIME TTY          TIME CMDroot         1     0  0 Jun09 ?        00:00:05 /sbin/initroot         2     0  0 Jun09 ?        00:00:00 [kthreadd]root         4     2  0 Jun09 ?        00:00:00 [kworker/0:0H]root         6     2  0 Jun09 ?        00:00:00 [mm_percpu_wq]root         7     2  0 Jun09 ?        00:00:00 [ksoftirqd/0]root         8     2  0 Jun09 ?        00:00:01 [rcu_sched]root         9     2  0 Jun09 ?        00:00:00 [rcu_bh]root        10     2  0 Jun09 ?        00:00:00 [migration/0]

ps ajxf

 ps ajxf PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND    0     2     0     0 ?           -1 S        0   0:00 [kthreadd]    2     4     0     0 ?           -1 I<       0   0:00  \_ [kworker/0:0H]    2     6     0     0 ?           -1 I<       0   0:00  \_ [mm_percpu_wq]    2     7     0     0 ?           -1 S        0   0:01  \_ [ksoftirqd/0]    2     8     0     0 ?           -1 I        0   0:03  \_ [rcu_sched]    2     9     0     0 ?           -1 I        0   0:00  \_ [rcu_bh]    2    10     0     0 ?           -1 S        0   0:00  \_ [migration/0]    2    11     0     0 ?           -1 S        0   0:00  \_ [watchdog/0]    2    12     0     0 ?           -1 S        0   0:00  \_ [cpuhp/0]    2 26968     0     0 ?           -1 I        0   0:00  \_ [kworker/u2:2]    2 27018     0     0 ?           -1 I        0   0:00  \_ [kworker/u2:1]    0     1     1     1 ?           -1 Ss       0   0:07 /sbin/init    1   385   385   385 ?           -1 S<s      0   0:19 /lib/systemd/systemd-journald    1   390   390   390 ?           -1 Ss       0   0:00 /sbin/lvmetad -f    1   393   393   393 ?           -1 Ss       0   0:01 /lib/systemd/systemd-udevd    1   433   433   433 ?           -1 Ss     100   0:00 /lib/systemd/systemd-networkd    1   453   453   453 ?           -1 Ssl  62583   0:00 /lib/systemd/systemd-timesyncd    1   460   460   460 ?           -1 Ss     101   0:01 /lib/systemd/systemd-resolved    1   500   500   500 ?           -1 Ss       0   0:00 /usr/sbin/cron -f    1   501   501   501 ?           -1 Ssl      0   0:07 /usr/lib/accountsservice/accounts-daemon    1   502   502   502 ?           -1 Ssl    102   0:03 /usr/sbin/rsyslogd -n    1   503   503   503 ?           -1 Ss       1   0:00 /usr/sbin/atd -f    1   505   505   505 ?           -1 Ss       0   0:00 /lib/systemd/systemd-logind    1   510   510   510 ?           -1 Ssl      0   0:01 /usr/bin/lxcfs /var/lib/lxcfs/    1   511   511   511 ?           -1 Ssl      0   0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher    1   512   512   512 ?           -1 Ss     103   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-onl    1   522   522   522 ?           -1 Ssl      0   0:07 /usr/lib/snapd/snapd    1   530   530   530 ?           -1 Ssl      0   0:00 /usr/lib/policykit-1/polkitd --no-debug    1   543   543   543 ?           -1 Ss       0   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;  543   544   543   543 ?           -1 S       33   0:13  \_ nginx: worker process    1   626   626   626 ?           -1 Ss       0   0:05 /sbin/iscsid    1   627   627   627 ?           -1 S<Ls     0   0:00 /sbin/iscsid    1   635   635   635 ?           -1 Ss       0   0:03 /usr/sbin/sshd -D  635 27062 27062 27062 ?           -1 Ss       0   0:00  \_ sshd: root@pts/027062 27159 27159 27159 pts/0    27211 Ss       0   0:00      \_ -bash27159 27211 27211 27159 pts/0    27211 R+       0   0:00          \_ ps -ajxf    1   645   645   645 tty1       645 Ss+      0   0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux    1   655   654   654 ?           -1 S    65534   0:00 /usr/bin/python /usr/bin/ssserver -q -c /etc/shadowsocks/config.json  655   712   654   654 ?           -1 S    65534   0:17  \_ /usr/bin/python /usr/bin/ssserver -q -c /etc/shadowsocks/config.json  655   713   654   654 ?           -1 S    65534   0:17  \_ /usr/bin/python /usr/bin/ssserver -q -c /etc/shadowsocks/config.json    1  9512  9512  9512 ?           -1 Ss    1000   0:00 /lib/systemd/systemd --user 9512  9513  9512  9512 ?           -1 S     1000   0:00  \_ (sd-pam)    1  9958  9958  9958 ?           -1 Ssl   1000   0:47 PM2 v2.10.4: God Daemon (/home/git/.pm2) 9958 11727 11727 11727 ?           -1 Ssl   1000   3:03  \_ node /data/shufabeitie.com/bin/www    1 11133 11133 11133 ?           -1 Ss     111   0:04 /usr/sbin/vnstatd -n    1 27066 27066 27066 ?           -1 Ss       0   0:00 /lib/systemd/systemd --user27066 27067 27066 27066 ?           -1 S        0   0:00  \_ (sd-pam)

pstree

 pstreesystemd─┬─PM2 v2.10.4: Go─┬─node /data/shuf───9*[{node /data/shuf}]        │                 └─9*[{PM2 v2.10.4: Go}]        ├─accounts-daemon───2*[{accounts-daemon}]        ├─agetty        ├─atd        ├─cron        ├─dbus-daemon        ├─2*[iscsid]        ├─lvmetad        ├─lxcfs───10*[{lxcfs}]        ├─networkd-dispat───{networkd-dispat}        ├─nginx───nginx        ├─polkitd───2*[{polkitd}]        ├─rsyslogd───3*[{rsyslogd}]        ├─snapd───7*[{snapd}]        ├─sshd─┬─sshd───bash        │      └─sshd───sshd───zsh───pstree        ├─ssserver───2*[ssserver]        ├─2*[systemd───(sd-pam)]        ├─systemd-journal        ├─systemd-logind        ├─systemd-network        ├─systemd-resolve        ├─systemd-timesyn───{systemd-timesyn}        └─systemd-udevd

ps -fG nginx

按组显示进程。

 ps -fG nginxUID        PID  PPID  C STIME TTY          TIME CMDnginx    26832  2015  0 Jun06 ?        01:10:14 nginx: worker processnginx    26833  2015  0 Jun06 ?        00:56:29 nginx: worker process id nginxuid=498(nginx) gid=499(nginx) groups=499(nginx) ps -fG 499UID        PID  PPID  C STIME TTY          TIME CMDnginx    26832  2015  0 Jun06 ?        01:10:14 nginx: worker processnginx    26833  2015  0 Jun06 ?        00:56:29 nginx: worker process

ps -f --forest -C sshd

按指定命令显示进程树。

 ps -f --forest -C sshdUID        PID  PPID  C STIME TTY          TIME CMDroot       635     1  0 Jun09 ?        00:00:08 /usr/sbin/sshd -Droot     13334   635  0 13:56 ?        00:00:00  \_ sshd: root@pts/0

ps -e u

最后的u参数用来决定以针对用户的格式输出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND这几列组成。

 ps -e u | headUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot         1  0.0  1.4 159556  7016 ?        Ss   Jun09   0:03 /sbin/initroot         2  0.0  0.0      0     0 ?        S    Jun09   0:00 [kthreadd]root         4  0.0  0.0      0     0 ?        I<   Jun09   0:00 [kworker/0:0H]root         6  0.0  0.0      0     0 ?        I<   Jun09   0:00 [mm_percpu_wq]root         7  0.0  0.0      0     0 ?        S    Jun09   0:00 [ksoftirqd/0]root         8  0.0  0.0      0     0 ?        I    Jun09   0:01 [rcu_sched]root         9  0.0  0.0      0     0 ?        I    Jun09   0:00 [rcu_bh]root        10  0.0  0.0      0     0 ?        S    Jun09   0:00 [migration/0]root        11  0.0  0.0      0     0 ?        S    Jun09   0:00 [watchdog/0]

ps -f -C java

参数-C显示指定应用名称的进程。

 ps -f -C javaUID        PID  PPID  C STIME TTY          TIME CMDroot      1304  1302  0 May07 ?        04:13:07 /opt/java/jdk8/bin/javaroot      8447     1  0 May31 ?        00:31:12 /opt/java/jdk8/bin/javaroot      9169     1  0 May08 ?        02:04:24 /opt/java/jdk8/bin/javatomcat   15961     1  0 Jun07 ?        00:11:56 /opt/java/jdk8/bin/javaroot     20095     1  0 Jun07 ?        00:16:34 /opt/java/jdk8/bin/javaroot     20487     1  0 Jun07 ?        00:15:57 /opt/java/jdk8/bin/java

ps -f -p 15961,20095

 ps -f -p 15961,20095UID        PID  PPID  C STIME TTY          TIME CMDtomcat   15961     1  0 Jun07 ?        00:11:56 /opt/java/jdk8/bin/javaroot     20095     1  0 Jun07 ?        00:16:34 /opt/java/jdk8/bin/java

ps H -e -o pid,user,ppid,nice,size,rss,pcpu,pmem,etime,cmd,lstart --sort=-pcpu

参数 -e 显示所有进程信息,-o 参数控制输出:

 ps H -e -o pid,user,ppid,nice,size,rss,pcpu,pmem,etime,cmd,lstart --sort=-pcpu | head -n 20  PID USER      PPID  NI    SZ   RSS %CPU %MEM     ELAPSED CMD                                          STARTED27221 tomcat       1   0 5184880 2856640 1.0 72.7 2-01:54:12 /opt/java/jdk/bin/java -Dja Thu Jun  7 20:53:52 201827221 tomcat       1   0 5184880 2856640 0.7 72.7 2-01:54:27 /opt/java/jdk/bin/java -Dja Thu Jun  7 20:53:37 201826832 nginx     2015   0 28500 30288  0.6  0.7  3-12:38:15 nginx: worker process       Wed Jun  6 10:09:49 2018 2043 root      2042   0 284664 58952 0.5  1.5 33-05:55:41 /usr/local/ilogtail/ilogtai Mon May  7 16:52:23 201826833 nginx     2015   0 28936 30264  0.5  0.7  3-12:38:15 nginx: worker process       Wed Jun  6 10:09:49 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 2-01:54:09 /opt/java/jdk/bin/java -Dja Thu Jun  7 20:53:55 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 1-15:18:16 /opt/java/jdk/bin/java -Dja Fri Jun  8 07:29:48 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 1-12:41:03 /opt/java/jdk/bin/java -Dja Fri Jun  8 10:07:01 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 15:01:41 /opt/java/jdk/bin/java -Dja Sat Jun  9 07:46:23 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 14:48:15 /opt/java/jdk/bin/java -Dja Sat Jun  9 07:59:49 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 14:48:15 /opt/java/jdk/bin/java -Dja Sat Jun  9 07:59:49 201827221 tomcat       1   0 5184880 2856640 0.5 72.7 14:36:20 /opt/java/jdk/bin/java -Dja Sat Jun  9 08:11:44 2018  997 root       995   0 2351344 67248 0.4  1.7 33-06:06:32 /usr/local/cloudmonitor/jre Mon May  7 16:41:32 201827221 tomcat       1   0 5184880 2856640 0.4 72.7 2-01:53:44 /opt/java/jdk/bin/java -Dja Thu Jun  7 20:54:20 201827221 tomcat       1   0 5184880 2856640 0.4 72.7 2-01:23:13 /opt/java/jdk/bin/java -Dja Thu Jun  7 21:24:51 201827221 tomcat       1   0 5184880 2856640 0.4 72.7 2-01:23:10 /opt/java/jdk/bin/java -Dja Thu Jun  7 21:24:54 201827221 tomcat       1   0 5184880 2856640 0.4 72.7 1-14:39:07 /opt/java/jdk/bin/java -Dja Fri Jun  8 08:08:57 201827221 tomcat       1   0 5184880 2856640 0.4 72.7 1-11:50:56 /opt/java/jdk/bin/java -Dja Fri Jun  8 10:57:08 201827221 tomcat       1   0 5184880 2856640 0.4 72.7 1-11:48:26 /opt/java/jdk/bin/java -Dja Fri Jun  8 10:59:38 2018

ps aux --sort=-pmem

可以用这个命令检查内存问题,不过这个命令在 Ubuntu 运行没有问题,在 CentOS 6.5 上运行并没有生效。

 ps aux --sort=-pmem | headUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot       385  0.0 11.8 243296 58552 ?        S s  Jun09   0:10 /lib/systemd/systemd-journaldgit       9958  0.0 10.1 1237076 49820 ?       Ssl  08:03   0:12 PM2 v2.10.4: God Daemon (/home/git/.pm2)git      11727  0.1 10.0 948332 49456 ?        Ssl  08:30   0:38 node /data/shufabeitie.com/bin/wwwnobody     712  0.0  3.2  66428 15996 ?        S    Jun09   0:07 /usr/bin/python /usr/bin/ssserver -q -c /etc/shadowsocks/config.jsonnobody     713  0.0  3.1  66340 15580 ?        S    Jun09   0:07 /usr/bin/python /usr/bin/ssserver -q -c /etc/shadowsocks/config.jsonnobody     655  0.0  3.1  65072 15452 ?        S    Jun09   0:00 /usr/bin/python /usr/bin/ssserver -q -c /etc/shadowsocks/config.jsonroot       511  0.0  2.3 170724 11340 ?        Ssl  Jun09   0:00 /usr/bin/python3 /usr/bin/networkd-dispatcherroot       522  0.0  2.1 549072 10600 ?        Ssl  Jun09   0:04 /usr/lib/snapd/snapdroot     12410  0.0  1.6  25300  8356 ?        S Ls 10:59   0:01 /usr/bin/atop -R -w /var/log/atop/atop_20180610 600

ps aux --sort=-pcpu

这个命令在 CentOS 6.5 和 Ubuntu 18.04 上运行都是没有问题的。

 ps aux --sort=-pcpu | head -5USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDtomcat   27221 22.3 72.6 5291448 2850520 ?     Sl   Jun07 1298:03 /opt/java/jdk/bin/javanginx    26832  0.6  0.7  75792 29704 ?        S    Jun06  52:09 nginx: worker processroot       997  0.5  1.7 2506656 67312 ?       Sl   May07 283:18 /usr/local/cloudmonitor/jre/bin/javanginx    26833  0.5  0.7  76160 30624 ?        S    Jun06  41:41 nginx: worker process

ps -o pid,uname,comm -C nginx

显示指定命令的进程及所有派生的子进程。

 ps -o pid,uname,comm -C nginx  PID USER     COMMAND 2015 root     nginx26832 nginx    nginx26833 nginx    nginx

ps -L -p 27221

显示指定进程的所有线程。

 ps -L -p 27221  PID   LWP TTY          TIME CMD27221 27221 ?        00:00:00 java27221 27222 ?        00:00:00 java27221 27223 ?        00:02:43 java27221 27224 ?        00:02:43 java27221 27225 ?        00:12:55 java27221 27226 ?        00:00:02 java27221 27227 ?        00:00:04 java27221 27228 ?        00:00:00 java27221 27229 ?        00:32:41 java

ps -e -O ppid -o user,cmd | head

 ps -e -O ppid -o user,cmd | head  PID  PPID S TTY          TIME COMMAND                     USER     CMD    1     0 S ?        00:00:07 /sbin/init                  root     /sbin/init    2     0 S ?        00:00:00 [kthreadd]                  root     [kthreadd]    4     2 I ?        00:00:00 [kworker/0:0H]              root     [kworker/0:0H]    6     2 I ?        00:00:00 [mm_percpu_wq]              root     [mm_percpu_wq]    7     2 S ?        00:00:01 [ksoftirqd/0]               root     [ksoftirqd/0]    8     2 I ?        00:00:03 [rcu_sched]                 root     [rcu_sched]    9     2 I ?        00:00:00 [rcu_bh]                    root     [rcu_bh]   10     2 S ?        00:00:00 [migration/0]               root     [migration/0]   11     2 S ?        00:00:00 [watchdog/0]                root     [watchdog/0]

References

  1. Linux user's manual - ps