리눅스(centos) 질문 입니다;; 프로세스 자동으로 죽이기요..
본문
php 프로그램을 백그라운드에서 실행을 시키는데요;; 이놈이 참.....
어쩌다가 한번씩 말썽입니다.. 가만히 있으면 10시간도 프로세스를 잡고 있어요ㅠㅠ
for문도 없습니다ㅠㅠ
왜 안꺼지는지 모르겠어요..
htop로 모니터링을 제가 계속 하는데요..
오래 잡고 있으면.. 제가 강제로 종료는 시키구요..
crontab을 사용해서 오래 붙잡고 있는 프로세스는 강제로 자동으로 종료 시키는 방법이 있을까 하여 글 남겨 봅니다.
예를들어서.. 조건이요..
1시간이 넘도록 프로세스를 잡고 있으면 강제 kill
이런식으로 말이지요..
힌트만 주셔도 막 찾아보겠습니다~ 결국에는 쉘을 써야하는데요..
고민이 많습니다ㅠㅠ
답변 1
다음과 같이 해보는 것은 어떨까요...
1. /etc/cron.hourly 디렉토리에
any_stop.sh 파일을 다음과 같은 내용으로 하나 만드세요.
======================= any_stop.sh =======================
#!/bin/sh
#아래의 killProg는 종료시켜야 할 프로그램 이름
PGM_NAME=killProg
Cnt=`ps -ef|grep $PGM_NAME|grep -v grep|grep -v vi|wc -l`
PROCESS=`ps -ef|grep $PGM_NAME|grep -v grep|grep -v vi|awk '{print $2}'`
if [ $Cnt -gt 0 ] ; then
kill -9 $PROCESS
fi
=====================================================
2. /etc/crontab 에 아래의 내용을 추가하세요.
# run-parts : 1시간 마다 /etc/cron.hourly 디렉토리내에 존재하는 파일들을 실행
01 * * * * root run-parts /etc/cron.hourly
----------------------------------------------------
참고 사이트 : http://fruitdev.tistory.com/9