[완료]아파치 프로세스에 대한 문제를 들고 왔는데 도움좀 주세요~
centos5.2
httpd-2.2.4(소스컴파일)
여기서 운영중입니다.
아파치가 죽지가 않아요 -_-;;;;
잘 죽어도 문제가 되겠지많.....왜 갑자기 안죽는지 모르겠어서...이렇게 글을 올립니다.
service httpd stop //반응없구요
/etc/init.d/httpd stop // 반응없구요
apachectl stop //역시 반응없구요
그래서 ps -ef|grep httpd 를 조회하여
kill -9 프로세스번호 하면 죽기는 하는데...
이상한점이...
[root@localhost conf]# ps -ef|grep http
root 6082 1 0 14:48 ? 00:00:00 /usr/local/apache/bin/httpd -k start
nobody 6085 6082 0 14:48 ? 00:00:03 /usr/local/apache/bin/httpd -k start
nobody 6087 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6089 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6171 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6199 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6201 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6255 6082 0 14:48 ? 00:00:01 /usr/local/apache/bin/httpd -k start
nobody 6256 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6258 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
nobody 6260 6082 0 14:48 ? 00:00:02 /usr/local/apache/bin/httpd -k start
root 6387 6082 0 14:51 ? 00:00:00 /usr/local/apache/bin/rotatelogs /var/log/http/access_log.%m%d 86400
root 6433 5840 0 14:56 pts/2 00:00:00 grep http
kill -9 6082 하게되면 죽을줄 알았는데
6082프로세스넘버가 모두 1로 바뀌면서 안죽네요 -_-;;
그래서 각각 kill -9 해서 모두 죽이면 그제서야 아파치가 죽는듯 보이는데(웹접속불가)
혹시 왜그런지 아시는분~
그리고 마지막에 rotatelogs 는 왜 돌아가고 있으려나요 -_-;; 자정에 맞춰놨는데 ;;;
참고로 죽이려는 이유는 httpd.conf파일 수정하고 적용을 시키고자 함 입니다.
index 파일없을때 디렉토리 인덱싱이 자꾸되서 고치려고 그랬는데 새로운 문제에 봉착 -_-;;;;;;
해쳐나갈 실마리라도 알려주시길 바랍니다 ㅜ.ㅜ
------------------------------------
결국 재부팅으로 정상으로 돌아와 일단락 지어놓기는 했으나...
죽지않는 이유를 파해치지 못하고 넘어간게 아쉽군요...부팅한지 70여일 밖에 지나지 않았는데 ㅜ.ㅜ
다시 죽지않을까...노파심에 두근두근 -_-;;;
역시 서버의 길은 멀고 험하군요 ㅜ_ㅜ
댓글 도움 주신분들 감사드립니다.
아파치가 안죽은
아파치가 안죽은 이유는 잘 모르겠고..(강한녀석이군요 -_-)
root 6082 1 0 14:48 ? 00:00:00 /usr/local/apache/bin/httpd -k start
요걸 죽였는데 왜 나머지의 ppid가 1이 되었냐면, 부모프로세스인(6082)를 죽였기 때문에 좀비프로세스가 되는걸 막기 위해서 init(ppid 1)이 ppid가 되었기 때문에 그렇습니다.
root 6387 6082 0 14:51 ? 00:00:00 /usr/local/apache/bin/rotatelogs /var/log/http/access_log.%m%d 86400
logrotate를 사용한게 아니라 아파치 자체 rotatelog네요. 24시간주기로 이름을 바꾸어주게 되어있습니다. 항상떠있죠.
소중한 댓글 감사드립니다.
부모를 죽이면 좀비가 되는거였군요 ㅎ~ 그냥 다 자동으로 죽는줄 알았네요 ^^;;;
rotatelog는 항상 떠있는 거였군요 ps -ef|grep httpd로 하면 늘 안보이다가 급 보이길래 없던건줄 알고 급당황 했네요 ^^;;
새로운 사실을 또하나 얻어갑니다. 감사합니다~
제..취미는...삽질......입니다 -_-;;;
?
근데 보통 아파치를 소스 컴파일 하시면 apachectl을 쓰시지 않을까 싶긴 합니다만? =ㅅ=);; 어디에 있는 어떤것의 httpd init 스크립트를 사용하시나요? 시작은 어떻게 하신건지;;
위 내용을 보아하니 구동 및 shutdown 하신다면
구동
/usr/local/apache/bin/apachectl start
Shutdown
/usr/local/apache/bin/apachectl stop
이렇게 운영하시지 않나 싶은데요.
그리고 그냥 굳이 kill로 죽이시려면 killall -9 httpd 하세요. (_ _)
apachectl을 사용하기는 합니다만~
/etc/init.d/httpd 여기에 등록(?)이 되어있어서
service httpd stop도 사용이 되었 거든요~
/usr/local/apache/bin/apachectl stop도 안먹히고 kill하는것도 한계가 있어서
결국에는 재부팅을 했더니 제대로 동작을 하기는 합니다만...
꾸준한 66.249.68.X의 공격으로 인한 사항이 아니길 기도(?) 하고 있답니다 ㅜ_ㅜ
kill -9 httpd 이것도 사용이 가능한지는 몰랐네요 ^^;;; 한수 배워갑니다. 감사드립니다.~
제..취미는...삽질......입니다 -_-;;;
댓글 달기