OS/Linux

죽은 데몬 자동 재실행

LukeHan1128 2021. 9. 20. 20:00
반응형

서비스 운영하는 도중 서비스 데몬이 죽는 경우가 간혹 발생한다.

그런 경우 매번 접속하여 서비스를 실행시키기는 여간 번거로운게 아니다.

 

별다른 프로그램 설치 없이 스크립트로 자동 재실행하는 방법이 있다.

 

 

스크립트작성

번거로운 작업을 피하기 위해 관리자로 접속한다.

자동 재실행을 위한 스크립트 작성

# 관리자 접속
sudo su
 
 
# 다음의 경로에 실행시킬 스크립트를 만든다. 예시에선 restart_hamonia.sh 로 작성한다.
vi /root/restart_hamonia.sh
# 다음 내용을 입력한다.
 
 
 
 
 
 
#!/bin/bash
 
hamoniaApp=$(sudo ps -ef | grep server.js | wc -l)
hamoniaWB=$(sudo ps -ef | grep app.js | wc -l)
 
 
if [ "$hamoniaApp" -ne 3 ]; then
        cd /hamonia
        sudo nohup node server.js &
fi
 
if [ "$hamoniaWB" -ne 3 ]; then
        cd /whiteboard
        sudo nohup node app.js &
fi
 
 
 
# 이 스크립트는 실행중인 서비스를 검색하여 카운트 한다.
# 아래는 sudo ps -ef | grep app.js 를 실행한 결과이다.
 
 
root      -  -  0 21:11 ?        00:00:00 sudo nohup node app.js
root      -  -  0 21:11 ?        00:00:00 node app.js
*******   -  -  0 21:24 pts/0    00:00:00 grep --color=auto app.js
 
 
# 검색하면 위와 같이 나타난다.
# 그래서 서비스가 이상없이 실행중인 경우 각각의 변수에 3이 담겨져 있다.
# 3이 아닌경우 서비스를 재실행한다.

 

 

 

 

크론탭등록

크론탭을 이용하여 작성한 스크립트를 실행하도록 한다.

crontab 을 이용한 스크립트 실행

# 관리자 상태로 다음을 입력한다.
crontab -e
 
 
 
 
# 다음을 추가한다. 1분주기로 스크립트를 실행한다.
* * * * * /root/restart_hamonia.sh
 
 
 
 
# 실행여부를 확인한다.
cat /var/log/syslog | grep restart_hamonia.sh

 

 

 

참고

반응형