Как создать unit файл для автозапуска бота
Нашел скрипт, который перезапускает бота в случае падения. Но я не понимаю что нужно указывать в WorkingDirectory и ExecStart. Директорий с ботом находится в учетной записи "my-bot", путь к исполняющему файлу main.py: /home/my-bot/bot/main.py. Файл bot.service с этим скриптом нужно положить в /etc/systemd/system, но под какой учетной записью? root или my-bot ? или это не имеет значения?
Я новичок в ubuntu, поэтому буду рад руководству, как сделать скрипт для перезапуска бота.
[Unit]
Description=My Bot
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=
ExecStart=
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
Ответы (1 шт):
Автор решения: Alexey R.
→ Ссылка
WorkingDirectoryможно не указывать, если Ваш сервис не работает с файлами (или работает, но при этом использует абсолютные пути).ExecStart- это команда, которую Вы вводите в командной строке, чтобы запустить бота (нужно указывать полные пути)User- это имя пользователя в системе, от имени которого Вы хотите запустить бота. От этого зависит какие пермиссии будут у бота, а каких не будет. Например некоторый файл, может быть доступен для чтения только пользователюА. Это, значит, что бот, запущенный от имени пользователяБупадет при попытке обратиться к файлу. Хорошим стилем является подготовка отдельного пользователя для запуска сервисов (с минимальным необходимым набором привилегий). Если Вы будете запускать сервис из под рута, Ваш бот может напортачить в системе.
Подробнее по ключам можно почитать тут.