Что использовать вместо PM2 для не-Node.js приложений?

Я думаю о переходе с Node.js на другой язык программирования (Elixir). А в Node я использовал PM2 в качестве менеджера процессов. Дело в том, что я не хочу использовать PM2 для управления процессами, поскольку мне понадобится Node в качестве зависимости, а PM2 - больше для процессов приложений Node.js (хотя я знаю, что с ним можно запускать приложения не-Node).).

Итак, мой вопрос: что я могу использовать в качестве замены PM2 для не-Node.js приложений?

Особенности, которые мне нужны от этого инструмента:

  • перечисление процессов и получение их статистики (процессор, память и т. д.)
  • задачи для запуска / перезапуска / удаления процессов
  • автоматический перезапуск процесса при сбое
  • отображение и хранение логов
  • (необязательно) некоторые инструменты мониторинга (что-то вроде Прометея)
  • (необязательно) процесс автозапуска при изменении файлов

0 ответов

Любой другой диспетчер процессов будет иметь собственный набор поддерживающих / базовых языков и фреймворков, например. Python или что-то в этом роде, так что разницы нет.

Если вы уже знаете PM2 и знаете, как поддерживать Node, используйте PM2 так, как это описано в документации для использования с приложениями, отличными от Node: https://pm2.keymetrics.io/docs/usage/process-management/#start-any-process-type

Практически любую службу, включая те, которые вы использовали для запуска с pm2, можно запустить из модуля systemd. И это в любом случае лучше интегрировать в дистрибутив Linux. Большинство фреймворков языков / веб-приложений предоставляют образец модуля systemd, который вы можете использовать.

Например, если вы программируете на Elixir, вы, вероятно, используете Phoenix Framework, для которого вы можете найти образцы модулей systemd и помощь на форуме Elixir.

Другие вопросы по тегам