Задать вопрос
@del4pp

Программа сама отключается без ошибок, как заставить работать вечно?

Здравствуйте.
Есть программа, работает корректно, 3-4 часа на сервере (запускаю через python3 main.py & exit), после этого отключается без сообщений об ошибках.

код программы выставлять не буду, т.к там очень много.
Если запустить на сервере без & exit, и смотреть в консоле отладки (принтами) - работает как надо, а если в фоне запустить - краш.

if __name__ == "__main__":
    while True:
        try:
            main()
        except Exception as e:
            logging_time_update.add_time_update(e)
            time.sleep(5)


logging_time_update.add_time_update(e) - принимает текстовое значение, и добавляет в базу данных время, и текст который передаю в функцию.
Все остальное работает в таком же обработчике в функции мейн.
Когда программа перестает работать - в базе данных отображается только последенее время запуска, без информации об ошибке.
  • Вопрос задан
  • 747 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
shurshur
@shurshur
Сисадмин, просто сисадмин...
python3 main.py & disown & exit

А ещё лучше логгировать что она пишет:

python3 main.py > main.log 2>&1 & disown & exit
Ответ написан
Комментировать
@AlexPyth
Разработчик ПО
Когда я запускал свои скрипты на сервере в фоне без нормального логгирования, тоже сталкивался с похожей проблемой, хотя код выглядел совершенно правильно... Проблема была в переполнении стека из-за многочисленных рекурсий. Если вы используете их, то посмотрите, как можно избавиться от этого.
И, лучше, логгировать все свои программы)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 17:00
350 руб./в час
02 февр. 2025, в 15:37
750000 руб./за проект