Что использовать вместо 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.