Systemd 서비스로 실행되는 Python 기반 tg 봇이 있습니다. 서비스 파일은 다음과 같습니다.
[Unit]
Description=Telegram ImageBot
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/gitlab-runner/image-bot
ExecStart=/usr/bin/python3 /home/gitlab-runner/image-bot/new_imagebot.py
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
또한 gitlab-ci 배포가 트리거될 때마다 설정을 수행하는 스크립트도 있습니다.
#!/bin/sh
echo "========= IMAGE BOT SETUP =========="
sudo rm -rf /home/gitlab-runner/image-bot
sudo cp -r . /home/gitlab-runner/image-bot
sudo cp ./deploy/imagebot.service /etc/systemd/system
echo "========= SYSTEMCTL SETUP =========="
sudo systemctl daemon-reload
sudo systemctl enable imagebot.service
sudo systemctl start imagebot.service
sudo systemctl status imagebot.service
Python 스크립트가 제대로 작동하려면 일부 디렉터리를 만들어야 합니다. 서비스를 수동으로 실행하면 문제가 없습니다. 그러나 systemctl start imagebot.service
gitlab-runner에서 실행하면 디렉터리가 생성되지 않고 봇이 충돌합니다. 내가 여기서 무엇을 놓치고 있는 걸까요? 시스템 서비스 시작은 사용자마다 어떻게 다릅니까?