Un proceso oculto, ¿qué es?

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

¿Alguien puede decirme qué es?

truease.com
fuente
es lsun alias para algo? se /bin/ls -1 | grep 2266comporta de la misma manera?
Frederik Deweerdt

Respuestas:

12

Es probable que esto sea un hilo. En Linux, los hilos tienen una ID de proceso diferente a los otros hilos en el proceso. Cuando observa la columna PID, en psrealidad está viendo el ID del grupo de subprocesos (TGID), que es común entre todos los subprocesos en un proceso. Esto se debe a razones históricas debido a la forma en que los hilos evolucionaron en Linux.

Por ejemplo, en mi sistema, el cromo tiene varios hilos en un proceso (también en varios procesos):

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

La segunda columna es el TGID (aunque está etiquetado como PID) y la cuarta columna es LWP (proceso ligero).

$ 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

Puede ver que el proceso 10929 no aparece /proc, pero puede cdhacerlo. Si observa el statusarchivo, verá que es parte del "proceso" (grupo de subprocesos) 10927, y de la salida anterior, ese proceso sí aparece /proc.

camh
fuente
1
Por cierto: su ps … | grep …línea en realidad no imprimirá el encabezado ... ¡Ojalá grep tuviera la opción de imprimir siempre la primera línea! Creo que haré una pregunta al respecto.
derobert
... en realidad, ya se ha preguntado: unix.stackexchange.com/questions/47918/…
derobert
@derobert: lo sé. Lo agregué más tarde porque sentí que era útil. Me preguntaba cuánto tiempo pasaría antes de que alguien lo señalara. Fuiste rápido :)
camh
De hecho, bastante útil. Sugiero usar ese comando sed final de la pregunta que publiqué en su lugar. Eso realmente imprime la línea del encabezado ... ¡Y es una buena solución!
derobert
Usaré convenciones editoriales y pondré la salida no literal entre paréntesis, para no confundir el punto.
camh
3

Es un hilo apache.

Puedes deducir de esto:

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

La documentación del kernel de Linux para el sistema de archivos proc aparentemente no explica por qué la ID del hilo es un directorio pero está oculto ls.

Sin embargo, los hilos se ven en /proc/<pid>/task/<threadid>.

bahamat
fuente