새소식

반응형
Linux/Shell

[Shell 스크립트] 프로세스 모니터링 및 자동 실행하기

  • -
반응형

Shell 스크립트를 사용하여 특정 프로세스를 모니터링하고, 실행되지 않았을 때 자동으로 시작하는 방법에 대해 알아보겠습니다.

이 스크립트는 특히 주기적으로 실행되어야 하는 백그라운드 프로세스 관리에 유용합니다.

automation

스크립트 소개

1. 다음은 프로세스를 체크만하는 스크립트 입니다.

#!/usr/bin/zsh

checkProcess() {
    local processName=$1
    local processPidCnt=$(ps -ef | grep "$processName" | grep -v grep | wc -l)
    local processPid=$(ps -ef | grep "$processName" | grep -v grep | awk '{print $2}')

    echo "$processName pid count is $processPidCnt"

    if [ $processPidCnt -gt 0 ]; then
        echo "$processName is running"
        echo "$processName running on $processPid"
    else
        echo "$processName is dead"
    fi
}

checkProcess "hashtagAlgotithmMiner.py"
checkProcess "recommendAlgorithmMiner.py"


 

2. 다음은 프로세스를 체크하고 필요시 실행까지하는 스크립트입니다:

#!/usr/bin/zsh

check_and_run_process() {
    local processName=$1
    local scriptPath=$2
    local processPidCnt=$(ps -ef | grep "$processName" | grep -v grep | wc -l)
    local processPid=$(ps -ef | grep "$processName" | grep -v grep | awk '{print $2}')

    echo "$processName pid count is $processPidCnt"

    if [ $processPidCnt -gt 0 ]; then
        echo "$processName is running"
        echo "$processName running on $processPid"
    else
        echo "$processName is dead"
        echo "Starting $processName"
        python3 "$scriptPath" &
        echo "$processName has been started"
    fi
}

# 사용 예시:
check_and_run_process "hashtagAlgotithmMiner.py" "/Users/data/hashtagAlgotithmMiner.py"

스크립트 설명

이 스크립트는 다음과 같이 동작합니다:

  1. check_and_run_process 함수는 두 개의 인자를 받습니다:
    • processName: 모니터링할 프로세스의 이름
    • scriptPath: 실행할 스크립트의 전체 경로
  2. ps -ef 명령어를 사용하여 현재 실행 중인 프로세스를 확인합니다.
  3. 지정된 프로세스가 실행 중이면 해당 정보를 출력합니다.
  4. 프로세스가 실행 중이지 않으면 "dead"라고 표시하고, 지정된 경로의 스크립트를 python3로 실행합니다.
  5. 스크립트는 백그라운드에서 실행됩니다 (& 기호 사용).
반응형

사용 방법

스크립트를 사용하려면 다음과 같이 호출하면 됩니다:

check_and_run_process "hashtagAlgotithmMiner.py" "/Users/data/hashtagAlgotithmMiner.py"

이 명령은 hashtagAlgotithmMiner.py 프로세스를 확인하고, 실행 중이지 않다면 /Users/data/hashtagAlgotithmMiner.py 경로의 스크립트를 실행합니다.

주의사항

  • 이 스크립트를 사용하려면 시스템에 python3가 설치되어 있어야 합니다.
  • 스크립트 파일에 실행 권한이 있어야 합니다.
  • 경로에 공백이 있는 경우, 따옴표로 묶어주는 것이 좋습니다.

결론

이 스크립트를 사용하면 중요한 백그라운드 프로세스가 항상 실행되도록 보장할 수 있습니다. cron job이나 다른 스케줄러와 함께 사용하면 정기적으로 프로세스 상태를 확인하고 필요시 자동으로 재시작할 수 있습니다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.