当我在 CentOS 6 上执行诸如 ps -aux 之类的命令时,我会得到一堆进程 whos 命令列在 [] 中,如下所示。名字中的[]是什么意思?我假设这些是某种特殊进程,是什么使进程名称显示为 [] ?
[root@centos6 src]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 18:48 ? 00:00:01 /sbin/init
root 2 0 0 18:48 ? 00:00:00 [kthreadd]
root 3 2 0 18:48 ? 00:00:00 [migration/0]
root 4 2 0 18:48 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 18:48 ? 00:00:00 [migration/0]
root 6 2 0 18:48 ? 00:00:00 [watchdog/0]
root 7 2 0 18:48 ? 00:00:02 [events/0]
Run Code Online (Sandbox Code Playgroud)
如果命令行无法访问ps
,即/proc/<pid>/cmdline
返回一个空字符串,然后ps
将其括在方括号中。
您可以使用它来测试上述内容,方法是运行以下命令,然后在进程列表中检出它:
$ perl -e '$0 = ""; sleep'
Run Code Online (Sandbox Code Playgroud)
然后做一个ps
:
saml 26756 2098 0 21:21 pts/9 00:00:00 []
Run Code Online (Sandbox Code Playgroud)
果然,我们的perl
过程显示在方括号 ( []
) 中。
是的,似乎有点奇怪,但只是为了确认我检查了第一对夫妇,它们肯定是空的:
$ for i in `seq 2125`;do [ -e /proc/$i/cmdline ] || continue; \
echo -n "PID# $i: "; echo $(cat /proc/$i/cmdline);done | less
PID# 1: /sbin/init
PID# 2:
PID# 3:
PID# 4:
PID# 5:
PID# 15:
...
PID# 1187: /sbin/rsyslogd-c4
PID# 1189: /sbin/rsyslogd-c4
PID# 1190: /sbin/rsyslogd-c4
PID# 1211:
PID# 1229: irqbalance
PID# 1255: rpcbind
PID# 1269: mdadm--monitor--scan-f--pid-file=/var/run/mdadm/mdadm.pid
...
Run Code Online (Sandbox Code Playgroud)
如果您使用-f
和-c
开关,您可以看到这些过程的扩展版本,而没有方括号:
$ ps --version
procps version 3.2.8
$ ps -auxfc | less
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S Aug21 0:00 kthreadd
root 3 0.0 0.0 0 0 ? S Aug21 0:04 \_ ksoftirqd/0
root 4 0.0 0.0 0 0 ? S Aug21 0:03 \_ migration/0
root 5 0.0 0.0 0 0 ? S Aug21 0:00 \_ watchdog/0
root 15 0.0 0.0 0 0 ? S Aug21 0:04 \_ events/0
root 19 0.0 0.0 0 0 ? S Aug21 0:00 \_ cpuset
root 20 0.0 0.0 0 0 ? S Aug21 0:00 \_ khelper
root 21 0.0 0.0 0 0 ? S Aug21 0:00 \_ netns
root 22 0.0 0.0 0 0 ? S Aug21 0:00 \_ async/mgr
root 23 0.0 0.0 0 0 ? S Aug21 0:00 \_ pm
root 24 0.0 0.0 0 0 ? S Aug21 0:00 \_ sync_supers
root 25 0.0 0.0 0 0 ? S Aug21 0:00 \_ bdi-default
root 26 0.0 0.0 0 0 ? S Aug21 0:00 \_ kintegrityd/0
root 30 0.0 0.0 0 0 ? S Aug21 0:07 \_ kblockd/0
root 34 0.0 0.0 0 0 ? S Aug21 0:00 \_ kacpid
root 35 0.0 0.0 0 0 ? S Aug21 0:00 \_ kacpi_notify
root 36 0.0 0.0 0 0 ? S Aug21 0:00 \_ kacpi_hotplug
root 37 0.0 0.0 0 0 ? S Aug21 0:00 \_ ata_aux
root 38 0.0 0.0 0 0 ? S Aug21 0:00 \_ ata_sff/0
root 42 0.0 0.0 0 0 ? S Aug21 0:00 \_ khubd
root 43 0.0 0.0 0 0 ? S Aug21 0:00 \_ kseriod
root 44 0.0 0.0 0 0 ? S Aug21 0:35 \_ kswapd0
root 45 0.0 0.0 0 0 ? SN Aug21 0:00 \_ ksmd
root 46 0.0 0.0 0 0 ? S Aug21 0:00 \_ aio/0
root 50 0.0 0.0 0 0 ? S Aug21 0:00 \_ crypto/0
root 59 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_0
root 60 0.0 0.0 0 0 ? S Aug21 0:26 \_ scsi_eh_1
root 61 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_2
root 62 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_3
root 63 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_4
root 64 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_5
root 71 0.0 0.0 0 0 ? S Aug21 0:00 \_ kpsmoused
root 72 0.0 0.0 0 0 ? S Aug21 0:00 \_ kstriped
Run Code Online (Sandbox Code Playgroud)
从手册页ps
:
-c Show different scheduler information for the -l option.
-f does full-format listing. This option can be combined with many
other UNIX-style options to add additional columns. It also
causes the command arguments to be printed. When used with -L,
the NLWP (number of threads) and LWP (thread ID) columns will be
added. See the c option, the format keyword args, and the format
keyword comm.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8116 次 |
最近记录: |