디스코드 봇
cd ~/discordbot
python3 -m venv venv && source venv/bin/activate
python bot.py
1. 가상환경·경로 확인
bash복사편집/home/ubuntu/discordbot/
├── venv/ # python -m venv 로 만든 곳
└── bot.py
다른 위치·사용자라면 경로·User 항목만 맞춰 바꿔 주세요.
2. 서비스 유닛 파일 작성
bash복사편집sudo nano /etc/systemd/system/discordbot.service
ini복사편집[Unit]
Description=Discord Party Bot
After=network.target
[Service]
# 봇을 실행할 리눅스 계정
User=ubuntu
WorkingDirectory=/home/ubuntu/discordbot
# 가상환경 파이썬으로 bot.py 실행
ExecStart=/home/ubuntu/discordbot/venv/bin/python /home/ubuntu/discordbot/bot.py
# 표준 출력·오류를 journald 로
StandardOutput=journal
StandardError=inherit
# 프로세스가 죽으면 10초 후 자동 재시작
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
저장 → Ctrl + O, Enter → Ctrl + X 종료
3. systemd 에 등록·시작
bash복사편집sudo systemctl daemon-reload # 유닛 새로고침
sudo systemctl enable discordbot # 부팅 시 자동 실행
sudo systemctl start discordbot # 지금 즉시 실행
상태·로그 확인
bash복사편집sudo systemctl status discordbot # 실행/에러 상태
journalctl -u discordbot -f # 실시간 로그 tail
4. 코드 업데이트 시 재시작만 하면 됨
bash복사편집# git pull 또는 파일 수정 후
sudo systemctl restart discordbot
5. 환경변수(.env) 위치 주의
.env가 WorkingDirectory 안에 있으면 그대로 읽힙니다.- 만약
/etc/environment같은 전역 환경변수를 쓰고 싶다면
서비스 유닛에Environment="DISCORD_TOKEN=..."줄을 추가할 수도 있습니다.