Linux Supervisor 사용법: 백그라운드 프로세스 관리 가이드
Supervisor
리눅스에서 Supervisor는 프로세스(예: Python, Node.js, Gunicorn 등)를 백그라운드에서 관리하고 자동 재시작 등을 도와주는 데몬입니다. 아래는 Ubuntu 계열 기준으로 Supervisor를 설치하고 사용하는 방법입니다.
1. Supervisor 설치
sudo apt update
sudo apt install supervisor -y
설치 후 Supervisor는 자동으로 시작되고, 시스템 서비스로 등록됩니다.
2. 설정 파일 생성
Supervisor의 개별 프로그램 설정은 /etc/supervisor/conf.d/ 아래에 .conf 파일로 작성합니다.
sudo nano /etc/supervisor/conf.d/myapp.conf
[program:myapp]
command=/usr/bin/python3 /home/ubuntu/myapp/app.py
directory=/home/ubuntu/myapp
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
user=ubuntu
주요 옵션 설명
- command: 실행할 명령어
- directory: 작업 디렉토리
- autostart: 부팅 시 자동 시작
- autorestart: 예외 종료 시 자동 재시작
- user: 실행 사용자 (root로 하지 말 것)
3. Supervisor 설정 반영 및 시작
# 설정 다시 읽기
sudo supervisorctl reread
# 새로운 설정 추가 반영
sudo supervisorctl update
# 특정 프로그램 시작
sudo supervisorctl start myapp
# 상태 확인
sudo supervisorctl status
4. Supervisor 기본 명령어 요약
명령어 | 설명 |
---|---|
sudo supervisorctl status |
등록된 프로세스 상태 확인 |
sudo supervisorctl start <프로그램> |
프로그램 실행 |
sudo supervisorctl stop <프로그램> |
프로그램 중지 |
sudo supervisorctl restart <프로그램> |
프로그램 재시작 |
sudo supervisorctl reread |
설정 파일 변경 감지 |
sudo supervisorctl update |
새 설정 반영 |
5. 로그 확인
로그 파일 경로는 .conf에서 지정한 경로를 확인하세요.
tail -f /var/log/myapp.out.log
tail -f /var/log/myapp.err.log
6. 부팅 시 자동 실행 확인
설정에 autostart=true 옵션이 있다면 시스템 부팅 시 Supervisor가 자동으로 프로세스를 실행합니다. 만약 Supervisor 자체가 부팅 시 안 올라오면 다음으로 확인합니다:
sudo systemctl enable supervisor