하면 된다!!!

Linux 프로세스 관리 쉘

프로그래밍/기타

###################################


1. 특정 프로세스를 찾아서 죽이기


#!/bin/bash

ps -ef | grep -v grep | grep 프로세스명 | awk '{print $2}' | xargs --no-run-if-empty kill -9 $1



###################################


2. 특정 프로세스가 살아있는지 체크해서 죽어있으면 살리는 쉘


$ vi /var/test/run.sh


#!/bin/bash

PROCESS_CNT=`ps -ef | grep 프로세스명 | grep -v grep | awk '{print $2}' | wc -l`

if [ "$PROCESS_CNT" == 0 ];

then

    echo "[`/bin/date +\%Y\%m\%d_\%H\%M\%S`] Process : Dead!!"

    실행시킬_프로세스명

else

    echo "[`/bin/date +\%Y\%m\%d_\%H\%M\%S`] Process : Alive!!"

    exit 0

fi


위와 같은 쉘을 하나 만들어두고 crontab 에 1분에 한번씩 돌게 해주면 1분에 1회씩 프로세스가 살아있는지 체크하고 죽어있으면 실행 시키도록 할 수 있다.


$ crontab -e

* * * * * /var/test/run.sh >> /var/test/proc_mon.log


$ tail -f /var/test/proc_mon.log

1분에 1회씩 로그가 쌓이는 것을 확인할 수 있습니다.