개발

디스코드 봇

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) 위치 주의

  • .envWorkingDirectory 안에 있으면 그대로 읽힙니다.
  • 만약 /etc/environment 같은 전역 환경변수를 쓰고 싶다면
    서비스 유닛에 Environment="DISCORD_TOKEN=..." 줄을 추가할 수도 있습니다.