¿El comando al que se hace referencia en `ps aux` no existe?

¿El comando al que se hace referencia en `ps aux` no existe?

Cuando lo ejecuto ps aux | grep /usr/local/apache/bin/httpdobtengo el siguiente resultado.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
www-data  9837  0.0  0.0  23112  1360 ?        S    Oct15   0:00 /usr/local/apache/bin/httpd -DSSL
www-data  9841  0.0  0.0  23112  1568 ?        S    Oct15   0:16 /usr/local/apache/bin/httpd -DSSL
www-data 29178  0.0  0.0  23112  1064 ?        S    Oct04   1:51 /usr/local/apache/bin/httpd -DSSL

Lo que me parece interesante es que eso /usr/local/apache/bin/httpdno existe. No hay ningún /usr/local/apache/bin/directorio en absoluto.

sudo cat /proc/9837/cmdlinedevoluciones/usr/local/apache/bin/httpd -DSSL

Cuando corro /proc/9837$ sudo /usr/local/apache/bin/httpd -DSSLme sale:

/usr/local/apache/bin/httpd: command not found

Cuando corro sudo ls -l /proc/9837/exe me sale:

lrwxrwxrwx 1 www-data www-data 0 2012-10-17 02:06 /proc/9837/exe -> /usr/bin/perl

Mi pregunta es, ¿por qué sucede esto? ¿No debería /proc/<pid>/cmdliney /proc/<pid>/exeestar relacionado? Si esto no es normal, ¿qué pasos puedo seguir para saber qué lo causó?

Estos procesos permanecen incluso después de ejecutarse.sudo /etc/init.d/apache2 stop

Como referencia, estoy ejecutando Ubuntu Ubuntu 10.04.4 LTS ejecutando Apache2 desde el repositorio apto predeterminado.


sudo ls -l /proc/9837/fdsalidas

lr-x------ 1 www-data www-data 64 2012-10-17 02:47 0 -> /dev/null
l-wx------ 1 www-data www-data 64 2012-10-17 02:47 1 -> pipe:[37796710]
l-wx------ 1 www-data www-data 64 2012-10-17 02:47 2 -> /var/log/apache2/error.log
lrwx------ 1 www-data www-data 64 2012-10-17 02:47 3 -> socket:[37796725]
lr-x------ 1 www-data www-data 64 2012-10-17 02:47 4 -> pipe:[40055427]

stat /proc/9837/rootdevoluciones

  File: `/proc/9837/root' -> `/'
  Size: 0           Blocks: 0          IO Block: 1024   symbolic link
Device: 3h/3d   Inode: 49853155    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (   33/www-data)   Gid: (   33/www-data)
Access: 2012-10-17 02:07:00.240782014 -0400
Modify: 2012-10-17 02:06:43.860777313 -0400
Change: 2012-10-17 02:06:43.860777313 -0400

Respuesta1

Huele a pescado. Los programas pueden anular sus $0. El programa pretende ser Apache, pero en realidad es Perl.

Vaya /proc/$PID/fdy eche un vistazo a los archivos que tiene abiertos, tal vez esto le dé una idea de lo que está pasando.

Respuesta2

dijiste que habías instalado apache2 desde el repositorio predeterminado. ¿Puedes ejecutar una verificación de coherencia basada en ese paquete para comprobar qué falta?

Parece que alguien/algo/de alguna manera eliminó algunos de los archivos de Apache. Pero Apache se había iniciado antes de eso, por lo que aún permanece en la memoria.

información relacionada