← 전체 목록
서버백업운영

Supervisor로 백그라운드 프로세스를 자동 재시작하고 안정적으로 운영합니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.

Supervisor로 백그라운드 프로세스 자동 재시작 관리를 도입한 건 병원 예약 알림을 보내는 Python 스크립트가 가끔 예외로 죽어도 아무도 몰랐던 문제를 해결하기 위해서입니다. nohup python3 notify.py &로 실행해두면 죽으면 그냥 죽어버렸습니다. Supervisor를 쓰면 프로세스가 죽어도 자동으로 재시작하고, 로그도 자동으로 관리해줍니다.

Supervisor 설치

sudo apt install supervisor

# 상태 확인
sudo systemctl status supervisor
sudo supervisorctl status

프로그램 설정 추가

sudo nano /etc/supervisor/conf.d/notify-bot.conf
[program:notify-bot]
; 실행할 명령어 (절대 경로 필수)
command=/usr/bin/python3 /var/www/scripts/notify.py

; 실행 디렉토리
directory=/var/www/scripts

; 실행 사용자
user=www-data

; 자동 시작 (supervisor 시작 시)
autostart=true

; 비정상 종료 시 자동 재시작
autorestart=true

; 재시작 전 대기 시간 (초)
startsecs=5

; 최대 재시작 횟수 (0=무제한)
startretries=10

; 로그 파일
stdout_logfile=/var/log/supervisor/notify-bot.log
stderr_logfile=/var/log/supervisor/notify-bot-error.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=3

관리 명령어

# 설정 다시 읽기
sudo supervisorctl reread
sudo supervisorctl update

# 프로그램 제어
sudo supervisorctl start notify-bot
sudo supervisorctl stop notify-bot
sudo supervisorctl restart notify-bot

# 상태 확인
sudo supervisorctl status

# 실시간 로그 확인
sudo supervisorctl tail -f notify-bot

# 전체 관리 UI (선택)
# /etc/supervisor/supervisord.conf 에서 inet_http_server 활성화 후
# http://서버IP:9001 접속

Supervisor는 cron처럼 주기 실행이 아니라 항상 실행 중이어야 하는 데몬 프로세스 관리에 적합합니다. systemd 서비스를 만들기 어려운 Python 스크립트나 Node.js 앱에도 쉽게 적용할 수 있습니다.

편집 정책

AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.

작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)