#python #pm2 #ubuntu-20.04
#python #pm2 #ubuntu-20.04
Вопрос:
У меня есть приложение python3, которое я хочу постоянно запускать на сервере Ubuntu. Я управляю им с помощью pm2, но столкнулся с очень странной ошибкой.
Я запускаю процесс pm2 с помощью:
pm2 start --name python_app --watch --interpreter /usr/bin/python3.8 python_app.py
Когда я впервые запускаю это, оно запускается неправильно: pm2 постоянно останавливает и перезапускает процесс несколько раз в секунду и будет продолжать делать это, пока не остановится. Вывод журналов ошибок pm2 имеет очень мало смысла: это много очень длинных трассировок через библиотеки python (почти всегда Flask), но без каких-либо фактических ошибок, связанных с ними, кроме KeyboardInterrupts, которые я не делаю.
После ручной остановки и запуска приложения (с использованием приведенных ниже команд) все работает как ожидалось (а затем продолжает нормально работать для последующих перезапусков).
pm2 stop python_app
pm2 start python_app
Я повторил этот процесс (удалив и переделав процесс pm2, чтобы увидеть ошибку, а затем остановив и перезапустив, чтобы заставить его работать) несколько раз, каждый раз с одинаковыми результатами. Интересно, является ли это результатом чего-то другого, что не так? Или, есть ли эквивалентная команда в pm2 для «настройки» нового процесса без его запуска, а затем запуска его отдельно.
Я попытался увеличить объем памяти при запуске, который мог бы использовать pm2, но он просто использует 100% того, что я ему даю, и по-прежнему сталкивается с той же проблемой перезапуска (только намного быстрее, ха-ха).
Ответ №1:
ах, я думаю, я знаю, в чем была проблема: я заметил, что просмотр отображался как «отключенный», когда я перечислял процессы, хотя я запускал с помощью команды —watch .
Когда я удалился --watch
из start
команды, она работала нормально: возможно, она не предназначена для использования с Python?
Хотелось бы услышать от любого, кто знает больше, но проблема решена.