Если на вашем сервере работает несколько разных приложений (например, Node.js-, Ruby- или Python-приложение или PHP-скрипт, который должен быть всегда запущен (daemon)), то Supervisor — то, что вам нужно. Он позволяет управлять процессами из одного файла конфигурации:
- Указывать файлы логов для каждого приложения;
- управлять политиками запуска и перезапуска;
- указывать от какого пользователя запускать приложения и т.д.
В моем случае есть PHP-скрипт с Websockets-сервером, который должен быть всегда запущен. В начале я запускал его просто через cron, поставив выполнение cron-а на каждый час. Если скрипт падал, то через час он восстанавливался (меньший интервал приводил к багам), это нам не очень подходило. Поэтому я начал искать другие варианты, про Supervisor я слышал уже давно, но в начале он мне показался сложным в настройке, поэтому ушел на дальнюю полку.
Сегодня я постараюсь рассказать как установить и настроить Supervisor на Ubuntu и CentOS.
Читать далее Supervisor — система управления процессами