반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 터미널
- ubuntu
- CLASS
- 분당맛집
- GPT
- pytorch
- ROS2
- humble
- opencv
- 딥러닝
- ros
- Android
- linux
- 판교
- 티스토리챌린지
- 오블완
- socketio
- timm
- ChatGPT
- python
- error
- TTS
- Torch
- 스팸
- openAI
- 맛집
- no space left on device
- string
- CUDA
- tensorflow
Archives
- Today
- Total
RoBoLoG
[Python] 프로그램이 죽으면 다시 시작하는 Python 코드 본문
프로그램이 죽으면 다시 시작하는 Python 코드
알 수 없는 오류로 프로그램은 계속 죽고
시연 날짜는 다가오고
쉽지 않은 하루가 이어지고 있습니다.
하지만 아래 코드를 통해 프로그램이 죽으면 다시 시작하도록 할 수 있습니다!
import psutil # psutil 라이브러리를 임포트합니다. 이 라이브러리를 사용하여 프로세스를 관리합니다.
import subprocess # subprocess 라이브러리를 임포트합니다. 이 라이브러리를 사용하여 외부 명령어를 실행합니다.
import time # time 라이브러리를 임포트합니다. 이 라이브러리를 사용하여 시간 지연을 구현합니다.
# 실행 중인 프로세스 중에서 특정 프로세스 이름이 있는지 확인하는 함수를 정의합니다.
def is_process_running(process_name):
for process in psutil.process_iter(attrs=['pid', 'name']):
if process.info['name'] == process_name:
return True # 프로세스가 실행 중이면 True를 반환합니다.
return False # 프로세스가 실행 중이 아니면 False를 반환합니다.
while True: # 무한 루프를 시작합니다.
test_script_name = "test.py" # 확인할 프로세스의 이름을 설정합니다.
# 지정된 프로세스가 실행 중이 아니면 실행합니다.
if not is_process_running(test_script_name):
try:
subprocess.run(["/path/to/file/run.sh"], check=True) # 외부 스크립트를 실행합니다.
except subprocess.CalledProcessError as e:
print(f"Error: {e}") # 실행 중 오류가 발생한 경우 오류 메시지를 출력합니다.
# 10초마다 프로세스를 확인하고 실행 여부를 결정합니다.
time.sleep(10) # 10초 동안 프로그램을 일시 정지합니다.
아주 원시적이지만 확실한 방법입니다.
time.sleep으로 걸어놓은 시간이 너무 짧으면 프로그램이 중복 실행될 수 있으니까 조심하세요!
728x90
반응형
'Study > Python' 카테고리의 다른 글
[Python] 클래스나 객체 내의 보호(protected) 속성 (2) | 2024.01.05 |
---|---|
[Python] 변수 권장 명명 규칙 (0) | 2024.01.05 |
[Python] Google Cloud Text-To-Speech 사용하기 (0) | 2023.08.10 |
[Python] bing-image-downloader를 이용한 이미지 크롤링 (0) | 2023.07.10 |
[Python] 문자열 포맷팅 (0) | 2023.06.28 |