[root@datacenteronline ~]# ssh [email protected]
Last login: Wed Apr 17 09:55:45 2013 from 192.168.1.187
[root@localhost ~]# ls /proc/ | grep 2266
[root@localhost ~]# cd /proc/2266
[root@localhost 2266]# ls
attr cpuset limits net root statm
autogroup cwd loginuid numa_maps sched status
auxv environ maps oom_adj schedstat syscall
cgroup exe mem oom_score sessionid task
clear_refs fd mountinfo oom_score_adj smaps wchan
cmdline fdinfo mounts pagemap stack
coredump_filter io mountstats personality stat
[root@localhost 2266]# ls -al /proc/2266
total 0
dr-xr-xr-x 7 apache apache 0 Apr 17 09:45 .
dr-xr-xr-x 266 root root 0 Apr 17 09:11 ..
dr-xr-xr-x 2 apache apache 0 Apr 17 09:45 attr
-rw-r--r-- 1 root root 0 Apr 17 09:45 autogroup
-r-------- 1 root root 0 Apr 17 09:45 auxv
-r--r--r-- 1 root root 0 Apr 17 09:45 cgroup
--w------- 1 root root 0 Apr 17 09:45 clear_refs
-r--r--r-- 1 root root 0 Apr 17 09:45 cmdline
-rw-r--r-- 1 root root 0 Apr 17 09:45 coredump_filter
-r--r--r-- 1 root root 0 Apr 17 09:45 cpuset
lrwxrwxrwx 1 root root 0 Apr 17 09:45 cwd -> /
-r-------- 1 root root 0 Apr 17 09:45 environ
lrwxrwxrwx 1 root root 0 Apr 17 09:45 exe -> /usr/local/apache2/bin/httpd
dr-x------ 2 root root 0 Apr 17 09:45 fd
dr-x------ 2 root root 0 Apr 17 09:45 fdinfo
-r-------- 1 root root 0 Apr 17 09:45 io
-rw------- 1 root root 0 Apr 17 09:45 limits
-rw-r--r-- 1 root root 0 Apr 17 09:45 loginuid
-r--r--r-- 1 root root 0 Apr 17 09:45 maps
-rw------- 1 root root 0 Apr 17 09:45 mem
-r--r--r-- 1 root root 0 Apr 17 09:45 mountinfo
-r--r--r-- 1 root root 0 Apr 17 09:45 mounts
-r-------- 1 root root 0 Apr 17 09:45 mountstats
dr-xr-xr-x 6 apache apache 0 Apr 17 09:45 net
-r--r--r-- 1 root root 0 Apr 17 09:45 numa_maps
-rw-r--r-- 1 root root 0 Apr 17 09:45 oom_adj
-r--r--r-- 1 root root 0 Apr 17 09:45 oom_score
-rw-r--r-- 1 root root 0 Apr 17 09:45 oom_score_adj
-r--r--r-- 1 root root 0 Apr 17 09:45 pagemap
-r--r--r-- 1 root root 0 Apr 17 09:45 personality
lrwxrwxrwx 1 root root 0 Apr 17 09:45 root -> /
-rw-r--r-- 1 root root 0 Apr 17 09:45 sched
-r--r--r-- 1 root root 0 Apr 17 09:45 schedstat
-r--r--r-- 1 root root 0 Apr 17 09:45 sessionid
-r--r--r-- 1 root root 0 Apr 17 09:45 smaps
-r--r--r-- 1 root root 0 Apr 17 09:45 stack
-r--r--r-- 1 root root 0 Apr 17 09:45 stat
-r--r--r-- 1 root root 0 Apr 17 09:45 statm
-r--r--r-- 1 root root 0 Apr 17 09:45 status
-r--r--r-- 1 root root 0 Apr 17 09:45 syscall
dr-xr-xr-x 29 apache apache 0 Apr 17 09:45 task
-r--r--r-- 1 root root 0 Apr 17 09:45 wchan
有人能告诉我那是什么吗?
答案1
这很可能是一个线程。在 Linux 中,线程与进程中的其他线程具有不同的进程 ID。当您查看 中的 PID 列时ps
,您实际上查看的是线程组 ID (TGID),它在进程中的所有线程中都很常见。这是由于 Linux 中线程的演变方式造成的历史原因。
例如,在我的系统上,Chromium 在一个进程中有多个线程(也有多个进程):
$ ps -efL | grep chromium
[UID PID PPID LWP C NLWP STIME TTY TIME CMD]
[...]
camh 10927 5182 10927 0 4 11:07 ? 00:00:00 /usr/lib/chromium/chromium ...
camh 10927 5182 10929 0 4 11:07 ? 00:00:00 /usr/lib/chromium/chromium ...
camh 10927 5182 10930 0 4 11:07 ? 00:00:00 /usr/lib/chromium/chromium ...
camh 10927 5182 10933 0 4 11:07 ? 00:00:00 /usr/lib/chromium/chromium ...
第二列是 TGID(尽管它被标记为 PID),第四列是 LWP(轻量级进程)。
$ ls /proc | grep 10927
10927
$ ls /proc | grep 10929
$ cd /proc/10929
$ head -n 5 status
Name: Chrome_ChildIOT
State: S (sleeping)
Tgid: 10927
Pid: 10929
PPid: 5182
您可以看到进程 10929 没有显示在 中/proc
,但您可以cd
查看它。如果您查看该status
文件,您会发现它是“进程”(线程组)10927 的一部分,并且从上面的输出来看,该进程确实出现在/proc
.
答案2
这是一个阿帕奇线程。
从此你可以看出:
lrwxrwxrwx 1 root root 0 Apr 17 09:45 exe -> /usr/local/apache2/bin/httpd
proc 文件系统的 Linux 内核文档显然没有解释为什么线程 ID 是一个目录但隐藏在ls
.
但是,可以在 中看到线程/proc/<pid>/task/<threadid>
。