@AlmazKayum

Почему скрипт, запущенный через systemd, зависает?

Всегда запускал свои Python-скрипты через nohup, они частенько падали, тут на «Тостере» посоветовали запускать скрипты как системный процесс с помощью systemd.

Настроил работу, используя статью https://jeckill.ru/zapusk-python-skripta-kak-servis/

Но скрипты как зависали, так и зависают. Что имею ввиду под зависают. То есть скрипт под телеграм-бота работал-работал, а затем просто перестал принимать обновления, без каких либо ошибок в логах.
systemctl start *.service не помогает, т.к. служба итак включена, но не работает.
Помогает только
systemctl restart *.service
Зависают скрипы каждые 2-3 дня. Поэтому проблему откладывать нельзя.
Как думаете, в чем может быть причина?
  • Вопрос задан
  • 538 просмотров
Пригласить эксперта
Ответы на вопрос 3
OnYourLips
@OnYourLips
Нужно отлаживать скрипт, проблема в нем.
Он не прекращает свою работу, просто работает некорректно.
Ответ написан
xotkot
@xotkot
хорошо есть и хорошо весьма
systemctl start *.service не помогает, т.к. служба итак включена, но не работает.

обычно для того чтобы понять работает сервис или нет как минимум смотрят его статус:
systemctl status СЕРВИС
Ответ написан
Советую запускать сервисы на Python через Supervisord (по старинке) или Circus, и предусмотреть в коде частные случаи.

Причина: В реальной жизни есть масса тонкостей, такие как наличие зависимых сервисов и порядок запуска, отсутствие доступа к сети, отсутствие прав к ФС, сети и т.д., ... Указанные продукты позволят настроить многие из указанных моментов, а так же как указал Pavel Denisov timeout для них и логирование.

Если не хотите вводить еще одну зависимость в свой продукт, то в файле описания сервиса systemd, можно указать некоторые правила для запуска сервиса
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы