[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
実際にはプロセスのすべてのスレッドに共通するTGID(スレッドグループID)を見ることになります。これは、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 ...
2番目の列はTGID(PIDと表示されています)、4番目の列は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
これはApacheスレッドです。
これから以下を見ることができます:
lrwxrwxrwx 1 root root 0 Apr 17 09:45 exe -> /usr/local/apache2/bin/httpd
procファイルシステムのLinuxカーネルドキュメントでは、スレッドIDはディレクトリですがls
。
しかし、スレッドはで見ることができます/proc/<pid>/task/<threadid>
。