글
[파이썬] 간단한 프로그램 watchdog 만들기
파이썬
2022. 8. 2. 12:20
자동매매 프로그램을 돌리다보면 여러가지 이유로 종료되는 경우가 있습니다. 그 원인은 프로그램 자체 오류일 수도 있고, 사용하는 API 때문일 수도 있습니다. 자동매매를 돌리는 이유가 매매 시점을 빨리 찾기 위함인데 프로그램이 죽어있으면 아주 곤란합니다.
보통은 프로세서 id를 찾아서 잘 동작하는지 확인하는 방식으로 watchdog 프로그램을 만드는데요. 다행히 파이썬에서는 프로그램 단위로 동작 여부를 확인할 수 있는 방법이 있습니다. 바로 subprocess package를 사용하는 것입니다. 간단하게 call() 함수에 실행할 프로그램 명령어를 입력하면 됩니다.
import os
import time
from subprocess import call
cmd = 'python myprogram.py'
while(1) :
call(cmd)
time.sleep(30)
정상 동작한다면 return이 없이 계속 block되어 있고, 프로그램이 정상 혹은 비 정상으로 종료하면 return이 됩니다.
call은 popen이라는 함수의 특수한 사용 예입니다. 만약 프로그램을 실행시키고 다른 뭔가를 더 하고 싶다면 popen을 사용하시면 됩니다. 예를들어 terminal은 하나인데 여러 프로그램을 실행시켜야 한다면 popen을 사용하시면 좋습니다.
추가로 call 함수는 return 값이 있습니다. call 함수로 실행한 프로그램에서 정상 종료와 비 정상 종료를 return 값으로 구분할 수도 있습니다.
반응형
'파이썬' 카테고리의 다른 글
[파이썬] 유닛테스트 (0) | 2023.06.20 |
---|---|
[파이썬] 파이썬을 이용하여 간단하게 GUI 만드는 방법[1] : tkinter (2) | 2022.11.08 |
[파이썬] 유용한 package들 (0) | 2022.05.30 |
[파이썬] 출력 text에 컬러 입히기 (0) | 2022.05.11 |
[파이썬] 실행 시 환경 변수 읽기 쓰기 (0) | 2022.01.17 |