Как на Ubuntu запустить демона автоматически после перезагрузки сервера?

  • 21 августа 2023 г. 17:36
Ответы на вопрос 5
Для автоматического запуска демона после перезагрузки сервера в Ubuntu вы можете воспользоваться службами systemd. Вот как можно сделать:

1. Создайте файл службы, например `/etc/systemd/system/mybot.service`, с помощью текстового редактора.

2. Вставьте следующие строки в файл службы:
```
[Unit]
Description=My Telegram Bot
After=network.target

[Service]
ExecStart=/usr/bin/python /путь_к_вашему_скрипту/mybot.py
WorkingDirectory=/путь_к_вашему_скрипту
User=имя_пользователя_с_которым_будет_запускаться_демон
Restart=always

[Install]
WantedBy=default.target
```
Обратите внимание, что вам нужно заменить `/путь_к_вашему_скрипту` на путь к вашему скрипту Python, а `имя_пользователя_с_которым_будет_запускаться_демон` на имя пользователя, от имени которого вы хотите запустить демона.

3. Сохраните и закройте файл.

4. Зарегистрируйте службу с помощью команды:
```
sudo systemctl enable mybot.service
```
Теперь служба будет автоматически запускаться после перезагрузки сервера.

5. Вы можете управлять службой с помощью следующих команд:
- Запустить службу: `sudo systemctl start mybot.service`
- Остановить службу: `sudo systemctl stop mybot.service`
- Перезапустить службу: `sudo systemctl restart mybot.service`
- Проверить статус службы: `sudo systemctl status mybot.service`

Теперь служба вашего Телеграм-бота будет автоматически запускаться после перезагрузки сервера.
 Если вам нужно проверить текущее состояние сервиса с названием unitname, используйте команду systemctl status unitname.
systemctl daemon-reload 
 Обязательно выполняйте команду systemctl daemon-reload перед изменением конфигурации сервиса.  
systemctl enable --now unitname 
 Чтобы включить и запустить сервис с названием unitname, используйте команду systemctl enable --now unitname.  
systemctl status unitname 
Похожие вопросы