Fornex
Европейский
хостинг

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

    Установка.

    В Debian/Ubuntu можно установить из репозитория:

    apt-get install supervisor  
    

    После установки, supervisor нужно сконфигурировать и добавить программы/процессы, которыми он будет управлять.
    Файл конфигурации находится в /etc/supervisor/supervisord.conf (для Ubuntu, Debian) или /etc/supervisord.conf для других систем.

    Для того чтобы добавить новый процесс (воркер) нужно дополнить файл аналогичным кодом:

    [program:worker]
    command=/usr/bin/php /var/www/worker.php  
    stdout_logfile=/var/log/worker.log  
    autostart=true  
    autorestart=true  
    user=www-data  
    stopsignal=KILL  
    numprocs=1  
    

    Параметры:

    • [program:worker] — название процесса/воркера, к которому будут относиться все последующие параметры секции;
    • command=/usr/bin/php /var/www/worker.php — путь к исполняемому файлу программы;
    • stdout_logfile=/var/log/worker.log — вывод консоли в файл;
    • autostart=true — запуск воркера вместе с запуском supervisor;
    • autorestart=true — перезапуск воркера, если тот по какой-то причине упал;
    • user=www-data — запуск процесса под определенным пользователем;
    • stopsignal=KILL — сигнал остановки процесса;
    • numprocs=1 — количество инстансов заданного воркера.

    После добавления новых процессов/воркеров нужно перезагружать supervisor:

    /etc/init.d/supervisor restart
    

    Supervisor дает возможность включить пользовательский веб-интерфейс supervisorctl, который включается при помощи файла конфигурации. Для этого нужно изменить секцию [inet_http_server], вписав туда верные имя пользователя и пароль:

    [inet_http_server]
    port=127.0.0.1:9001  
    ;username=some_user_name
    ;password=some_password
    

    Дополнительные возможности:
    В supervisor есть встроенный механизм мониторинга событий, при помощи которого система может оповещать об ошибках:

    [eventlistener:memmon]
    command=memmon -a 200MB -m error@site.com  
    events=TICK_60