Programming &/Server & OS

리눅스에서 내가 원하는 프로세스를 죽이자!!

마법눈 2009. 10. 29. 04:30
언제부턴가 서버에 이상일이 생겼다.
새벽마다 이상하게도 아파치가 죽는다. ㅡ.ㅡ
근데 비정상적으로 죽는다.
pid 는 없고 아파치 프로세스는 살아있다.
이건 뭥미 ㅡ.ㅡ

4시에 cron.daily 가 돌아가면서 돌아가신 모양인데 왜인지는 모르겠다.
이유가 어찌됐건 pid 없는 아파치를 어찌해줘야겠다 ㅡ.ㅡ
그래서 cron 으로 4시 5분경 아파치 프로세스를 죽이고 4시 6분경 아파치를 다시 시작한다 ㅠㅠ

원래 의도는 아파치 pid  파일이 없으면 아파치 프로세스를 죽이고 아파치를 시작하는걸 한방에 하는건데
어찌된건지 죽긴하는데  시작이 안되는군
이게 나의 한계인가 ...

그래서 스크립트를 2개로 나눴다 ㅠㅠ

일단 아파치 프로세스를 죽여보자.

httpd_kill.sh
-------------------------------------------------------------------------------------
#!/bin/sh

if [ ! -f /usr/local/apache/logs/httpd.pid ]; then
        kill -9 `ps -ef | grep 'httpd' | grep -v grep | awk '{print $2}'`
fi
--------------------------------------------------------------------------------------

아파치를 시작한다.

httpd_start.sh
--------------------------------------------------------------------------------------
#!/bin/sh

if [ ! -f /usr/local/apache/logs/httpd.pid ]; then
        /usr/local/apache/bin/apachectl startssl
fi
--------------------------------------------------------------------------------------

이제 내일을 지켜보는 일만 남았다...

내가 원하는 프로세스를 죽이기 위해서 grep 과 awk 를 사용했다.
kill -9 `ps -ef | grep 'httpd' | grep -v grep | awk '{print $2}'`