숨겨진 과정은 무엇입니까?


11
[root@datacenteronline ~]# ssh root@192.168.1.172
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

갇힌 사람이 뭔지 말해줘?


이다 ls무언가의 별명은? 않습니다 /bin/ls -1 | grep 2266같은 방식으로 작동?
Frederik Deweerdt

답변:


12

스레드 일 가능성이 있습니다. Linux에서 스레드는 프로세스의 다른 스레드와 다른 프로세스 ID를 갖습니다. 에서 PID 열을 보면 ps실제로 프로세스의 모든 스레드에서 공통적 인 스레드 그룹 ID (TGID)를보고있는 것입니다. 이것은 리눅스에서 스레드가 진화 한 방식으로 인해 역사적인 이유 때문입니다.

예를 들어, 내 시스템에서 크롬은 프로세스에 여러 스레드가 있습니다 (여러 프로세스도).

$ 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 프로세스는에 나타나지 않지만 볼 /proccd는 있습니다. status파일 을 보면 파일이 "프로세스"(스레드 그룹) 10927의 일부이며 위 출력에서 ​​해당 프로세스가에 표시됨을 알 수 /proc있습니다.


1
BTW : ps … | grep …라인이 실제로 헤더를 인쇄하지는 않습니다 ... grep에 항상 첫 번째 라인을 인쇄하는 옵션이 있었으면합니다! 그것에 대해 질문 할 것 같아요.
derobert

... 실제로, 그것은 이미 요청되었습니다 : unix.stackexchange.com/questions/47918/…
derobert

@derobert : 알아요. 나중에 유용하다고 생각하면서 추가했습니다. 누군가 지적하기까지 얼마나 걸 렸는지 궁금했습니다. 당신은 빠르다 :)
camh

실제로 매우 유용합니다. 대신 게시 한 질문에서 최종 sed 명령을 사용하는 것이 좋습니다. 그것은 실제로 헤더 행을 인쇄합니다 ... 그리고 좋은 해결책입니다!
derobert

논설을 혼동하지 않도록 편집 규칙을 사용하고 리터럴이 아닌 출력을 괄호 안에 넣습니다.
camh

3

아파치 스레드입니다.

당신은 이것에서 알 수 있습니다 :

lrwxrwxrwx   1 root   root   0 Apr 17 09:45 exe -> /usr/local/apache2/bin/httpd

proc 파일 시스템에 대한 리눅스 커널 문서는 스레드 ID가 왜 디렉토리에 숨겨져 있는지 설명하지 않습니다 ls.

그러나 스레드는에서 볼 수 있습니다 /proc/<pid>/task/<threadid>.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.