Linux shell script to monitor memory usage(re-start when it over the threshold) 리눅스 쉘스크립트로 cpu 메모리 관리하기
본문 바로가기
Shell script

Linux shell script to monitor memory usage(re-start when it over the threshold) 리눅스 쉘스크립트로 cpu 메모리 관리하기

by Migos 2022. 8. 22.
반응형

쉘스크립트의 무궁무진한 활용성으로 매 분 메모리 체크 후 일정 threshold 조건 만족 시 현재 구동하는 파이썬 코드를 죽이고 재실행하게끔 만들었다.

 

코드전체

#!/bin/bash
mem_threshold='500'
mem_free=$(free -m | awk '{print $7}')
now=$(date)
# CURPID1=$(ps -ef | grep vas_status.sh | awk '{ print $2 }')
CURPID2=$(ps -ef | grep vas_start.sh | awk '{ print $2 }')
CURPID3=$(ps -ef | grep main_IPcamera_new.py | awk '{ print $2 }')

echo "memory space remaining : $mem_free MB"
if [ $mem_free -lt $mem_threshold  ]
    then
        echo "mem warning!!!"
        echo "${now}"
        # kill -9 ${CURPID1[0]}
        kill -9 ${CURPID2[0]}
        kill -9 ${CURPID3[0]}
        sleep 5
        gnome-terminal -- bash /home/admin/codes/VAS/src/vas_status.sh
    else
        echo "mem ok!!!"
fi

 

변수설명

mem_threshold= 임계치 MegaByte

mem_free= available

CURPID1= main_IPcamera_new.py 가 죽었을 때 자동으로 PID 체크 후 vas_start.sh를 구동시키는 스크립트

CURPID2= main_IPcamera_new.py 실행 스크립트

CURPID3= 파이썬 구동코드

 

구동원리

mem_free가 mem_threshold 임계치보다 낮으면(-lt) | 즉, available 메모리가 임계치보다 작으면 아래 스크립트 실행.

kill -9로 기존 프로세스 죽이고,

5초 쉰 후

bash 스크립트 구동.

 

*여기서 CURPID1을 주석처리해놓은 이유는 이것까지 죽여버리면 재구동이 불가능함.

반응형

댓글