Systemd служба не работает из-за поедания ресурсов

Рейтинг: 0Ответов: 0Опубликовано: 09.05.2023

Написал Telegram бота на webhook на основе Flask. Использую Debian11. Сам бот работает прекрасно, если запускать напрямую скрипт через "python3 main.py". Прикол в том, что он должен работать на VPS-ке 24/7. Поэтому создал Systemd службу "bot.service" . Всё сделал по гайду, https://thecode.media/systemctl/

[Unit]
Description=tg-bot
After=multi-user.target

[Service]
User=root
Group=root
Type=simple
Restart=always
ExecStart=/usr/bin/python3 /bot/main.py
DefaultStartLimitBurst=0s

[Install]
WantedBy=multi-user.target

В статусе пишет всё Active

введите сюда описание изображения

Перезапускал, включал 0 итога.

Проблема в том, что служба сначала крашилась типа "Start request repeated too quickly". (Потом добавил DefaultStartLimitBurst=0s). И заработало! Но потом я решил протестировать и начал долбить сообщения в телеге и он перестал отвечать. Проблема именно в малом количестве оперативки (НО ВСЁ ПРЕКРАСНО РАБОТАЛО, характеристики VPS-ки чуть ниже дна - RAM 0.5 gb - но для бота на webhook - окей, максимум используется мелкий парсинг и изменение файлов) Подправил ещё немного настройки /etc/systemd/system.conf Добавил "DefaultStartLimitIntervalSec=0s" и "DefaultStartLimitBurst=0s". 0 результата. Просто пишет Active, главная страница сервера не открывается даже - значит скрипт блокируется.

Единственное, где нашёл хоть какую то инфу https://www.suse.com/support/kb/doc/?id=000019750

Буду очень признателен, если подскажете как моей службе (bot.service) обойти ограничение на потребление ресурсов. Уверен всё фиксится банальными настройками в /etc/systemd/system.conf, но хз какими. Повторюсь через обычный "python3 main.py" - всё идеально работает и при хорошей нагрузке.

  1. P.S. Насчёт Сначала была аналогичная ошибка "Start request repeated too quickly" как в этой теме Не запускается python скрипт в systemd

Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: sendermail.service: Main process exited, code=exited, status=1/FAILURE
Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: sendermail.service: Failed with result 'exit-code'.
Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: sendermail.service: Service hold-off time over, scheduling restart.
Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: sendermail.service: Scheduled restart job, restart counter is at 5.
Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: Stopped Serder mail.
**Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: sendermail.service: Start request repeated too quickly.**
Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: sendermail.service: Failed with result 'exit-code'.
Nov 09 14:00:14 ip-172-31-32-65 systemd[1]: Failed to start Serder mail.

Пофиксил её при помощи DefaultStartLimitBurst=0s . А потом начал тестить

  1. В Flask сделал return символа "!" в случае кода 200 на главную страницу

@server.route('/')
def webhook():
    bot.remove_webhook()
    bot.set_webhook(url = APP_URL)
    return '!', 200

Ответы

Ответов пока нет.