Ein versteckter Prozess, was ist das?

11
[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

Hat mir jemand gesagt, was es ist?

truease.com
quelle
ist lsein Alias ​​für etwas? verhält /bin/ls -1 | grep 2266sich genauso?
Frederik Deweerdt

Antworten:

12

Dies ist wahrscheinlich ein Thread. Unter Linux haben Threads eine andere Prozess-ID als die anderen Threads im Prozess. Wenn Sie sich die PID-Spalte in ansehen ps, sehen Sie tatsächlich die Thread-Gruppen-ID (TGID), die allen Threads in einem Prozess gemeinsam ist. Dies ist aus historischen Gründen auf die Art und Weise zurückzuführen, wie sich Threads unter Linux entwickelt haben.

Auf meinem System hat Chrom beispielsweise eine Reihe von Threads in einem Prozess (auch mehrere Prozesse):

$ 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 ...

Die zweite Spalte ist die TGID (obwohl sie als PID bezeichnet ist) und die vierte Spalte ist LWP (Light-Weight-Verfahren).

$ 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

Sie können sehen, dass der Prozess 10929 nicht in angezeigt wird /proc, aber Sie können cdes tun . Wenn Sie in die statusDatei schauen , werden Sie sehen, dass sie Teil von "process" (Thread-Gruppe) 10927 ist, und aus der obigen Ausgabe wird dieser Prozess in angezeigt /proc.

camh
quelle
1
Übrigens: Ihre ps … | grep …Zeile druckt die Kopfzeile nicht aus ... Ich wünschte, grep hätte die Option, immer die erste Zeile zu drucken! Ich denke, ich werde eine Frage dazu stellen.
Derobert
... eigentlich wurde es schon gefragt: unix.stackexchange.com/questions/47918/…
derobert
@derobert: Ich weiß. Ich habe es später hinzugefügt, da ich es für nützlich hielt. Ich fragte mich, wie lange es dauern würde, bis jemand darauf hinwies. Sie waren schnell :)
Camh
In der Tat sehr nützlich. Ich schlage vor, diesen letzten sed-Befehl aus der Frage zu verwenden, die ich stattdessen gestellt habe. Das druckt tatsächlich die Kopfzeile ... Und ist eine schöne Lösung!
Derobert
Ich werde redaktionelle Konventionen verwenden und die nicht-wörtliche Ausgabe in Klammern setzen, um den Punkt nicht zu verwirren.
Camh
3

Es ist ein Apache-Thread.

Daran können Sie erkennen:

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

Die Linux-Kerneldokumentation für das proc-Dateisystem erklärt anscheinend nicht, warum die Thread-ID ein Verzeichnis ist, vor dem sie jedoch verborgen ist ls.

Die Threads sind jedoch in zu sehen /proc/<pid>/task/<threadid>.

Bahamat
quelle