
실행하면 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가 시작되었으므로 여전히 메모리에 남아 있습니다.