`ps aux`에 참조된 명령이 존재하지 않습니까?

`ps aux`에 참조된 명령이 존재하지 않습니까?

실행하면 ps aux | grep /usr/local/apache/bin/httpd다음과 같은 결과가 나타납니다.

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

하지만 내가 흥미롭게 생각하는 것은 그것이 /usr/local/apache/bin/httpd존재하지 않는다는 것입니다. /usr/local/apache/bin/디렉토리가 전혀 없습니다 .

sudo cat /proc/9837/cmdline보고/usr/local/apache/bin/httpd -DSSL

내가 실행하면 /proc/9837$ sudo /usr/local/apache/bin/httpd -DSSL다음을 얻습니다.

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

내가 실행하면 sudo ls -l /proc/9837/exe 다음을 얻습니다.

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

제 질문은, 왜 이런 일이 일어나는 걸까요? 관련이 없어야 /proc/<pid>/cmdline합니까 /proc/<pid>/exe? 이것이 정상이 아닌 경우 원인을 찾기 위해 어떤 조치를 취할 수 있습니까?

이러한 프로세스는 실행 후에도 유지됩니다.sudo /etc/init.d/apache2 stop

참고로 저는 기본 apt 저장소에서 Apache2를 실행하는 Ubuntu Ubuntu 10.04.4 LTS를 실행하고 있습니다.


sudo ls -l /proc/9837/fd출력

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/root보고

  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

답변1

생선 냄새가 나요. 프로그램은 자신의 $0. 이 프로그램은 Apache인 척하지만 실제로는 Perl입니다.

가서 /proc/$PID/fd어떤 파일이 열려 있는지 살펴보세요. 아마도 이것이 무슨 일이 일어나고 있는지에 대한 단서를 제공할 것입니다.

답변2

당신은 기본 저장소에서 apache2를 설치했다고 말했습니다. 해당 패키지를 기반으로 일관성 검사를 실행하여 무엇이 누락되었는지 확인할 수 있습니까?

누군가 / 무엇인가 / 어떻게든 아파치 파일 중 일부를 삭제한 것 같습니다. 하지만 그 전에 Apache가 시작되었으므로 여전히 메모리에 남아 있습니다.

관련 정보