-
Python: 일정 시간마다 subprocess 실행 중인지 체크하기컴퓨터/파이썬 2022. 7. 13. 20:29728x90반응형
특정 프로세스가 살아있는지 매 초마다 확인하고 죽어있다면 재실행하는 예제
pip install rocketry
import shlex import subprocess from os import setpgrp from rocketry import Rocketry app = Rocketry() @app.task("every 1 second") def check_db_updater(): """ updater 라는 프로세스 매 초마다 체크함""" cmd = "ps cax | grep updater > /dev/null; if [ $? -eq 0 ]; then echo '1'; else echo '0'; fi" ps = subprocess.Popen( cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ) output = ps.communicate()[0].rstrip() result = int(output.decode("utf-8")) # 1이면 실행 중 아니면 0 if result: print("프로세스 실행 중...") else: print("프로세스 실행 중 아님, 재실행 중") updater = subprocess.Popen( shlex.split( "nohup ./updater" ), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, preexec_fn=setpgrp, ) print("UPDATER PID >>>", updater.pid) if __name__ == "__main__": app.run()
시간 예제는 맨 위 링크 공식 문서 참고
728x90'컴퓨터 > 파이썬' 카테고리의 다른 글
Flet: Python Flutter GUI 앱 (0) 2022.08.30 Python: MPIRE 파이썬 멀티 프로세싱 라이브러리 (0) 2022.01.16 Python: Mito 파이썬 데이터 분석 라이브러리 (0) 2022.01.15