001-супервизор супервизор учебник (оборотов в минуту)

Оригинальный адрес: https: //word.gw1770df.cc/2016-08-04/linux/supervisor-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/

Руководитель

Официальный сайт для  http://supervisord.org/

Система управления технологическим процессом

Использование B / S архитектуры, работающая на Unix-подобные системы мониторинга процесса и систему управления

Это может сделать процесс запуска в качестве демона, и был процесс мониторинга может автоматически перезапустить процесс, когда неожиданно завершает работу.

 

устанавливать

Руководитель должны использовать инструмент трубы, установить и использовать процесс разработки питона очень просто. Использование  pip или  easy_install установка будет очень удобно, автоматически разрешать зависимости.
sudo pip install supervisor
sudo easy_install supervisor

Пожалуйста , обратитесь к пип установить  установки пип Python учебник

знакомство

После того, как установка завершена, система будет увеличивать количество команд ,
supervisord используемых для запуска супервизора службы.
supervisorctl Услуги по управлению супервизора, руководитель управления использовать процесс начался.

После супервизора установки необходимо вручную создать файл конфигурации.
echo_supervisord_conf | sudo tee /etc/supervisord.conf
супервизор считывает файл конфигурации по умолчанию /etc/supervisord.conf, мы рекомендуем конфигурационные файлы в этой папке.

Давайте посмотрим на простой  supervisord.conf, тот же формат файлов конфигурации и конфигурации INI формат файла по разделам, ключ, состав значения, файл конфигурации комментариев ;.

  • [unix_http_server]
    Этот раздел связан с профилем supervisord носок, носок , содержащий путь к файлу, аутентификацию пользователя. Используйте supervisorctlкоманду для управления процессом, использование этого носка файл. Значение по умолчанию остается открытым, так как это будет закрыта  , [inet_http_server] вы не можете использовать.
  • [inet_http_server]
    В этом разделе конфигурации supervisorинтерфейса веб - управления и настроить адрес прослушивания и порт, пользователь был идентифицирован. По умолчанию отключено. Для того, чтобы открыть фестиваль этот комментарий был удален, а затем изменить соответствующий ключ.
  • [supervisord]
    Этот раздел супервизор для ряда параметров для настройки параметров службы, таких как журналы, размер журнала и так далее.
  • [supervisorctl]
    Supervisorctl программа настройки управления для таких параметров, как путь к файлу носок, и требует [unix_http_server]того же.
  • [include]
    Этот раздел содержит различную роль профиля, мы рекомендуем вам включить эту опцию, в том числе дополнительный конфигурационный файл, вам нужно будет написать процесс управления конфигурациями дополнительных профилей, часто не нужно редактировать основной файл конфигурации, чтобы обеспечить безопасность. Изменение кода
[включать] 
файлы = /etc/supervisor.d/*.conf

Читать /etc/supervisor.d/ суффикс папки для всех файлов конф.

Первый шаг

Первая программа использует supervisord управления конфигурацией

Мы используем python2.7 , чтобы продемонстрировать, используя модуль SimpleHTTPServer легко и быстро запустить сервер HTTP.
1, создать профиль /etc/supervisor.d/test1.conf, пишет о содержании

[Программа: SimpleHTTPServer] 
команда = / USR / бен / окр python2.7 -m SimpleHTTPServer 20080

Это один из самых простых , например, первая строка указывает имя программы , в настоящее время настроен. Программа запуска второй командной строки (номер порта HTTP сервер 20080).
2, первая программа была настроена, вы можете начать смотреть supervisord эффект.
Введите команду  sudo supervisord для запуска службы.
Многие машины будут печатать несколько строк информации, это не означает , что ошибка программы, т.е.

«Supervisord является использование корня, чтобы начать, прочитайте местоположение по умолчанию файла конфигурации, если вам нужно прочитать еще профили местоположения используйте параметр -c»

3, в настоящее время использует ps -ef | grep pythonдля проверки только ли программа настройки была запущена. До сих пор мы завершили первый этап.

Подробная конфигурация

Скопировать код
[Программа: theprogramname] 
Командование = / bin / CAT, программа выполняет команду, рекомендуется использовать абсолютные пути. 
process_name =% (program_name) s, название программы, доступны переменная `group_name`,` host_node_name`, `process_num` ,` program_name`, `here` ( каталог профиля). будет использоваться ситуация в целом необходимо запускать несколько копий программы. Позже будет примеры. 
numprocs = 1, число копий программы для запуска, по умолчанию, если значение больше 1,% `process_name` должен contain` (process_num) s` 
numprocs_start = 0;`% (process_num) s` стартового номер, по умолчанию 0 
00 = / TMP, каталог , в котором программа запущена, эквивалент первого компакт - диска в указанную директорию, а затем запустить программу. 
= 022 Umask; Способ UMASK ( по умолчанию None) 
Приоритет = 999; порядок работы приоритета, например , в выключения и перезапуска сначала начать все / остановить все, высокие приоритетные программы. 
автозапуск = правда, запускается автоматически при supervisord запуска по умолчанию является истинным  
startsecs = 1;. выжидает время ожидания перед запуском программы. Значение по умолчанию 1.
startretries = 3; максимальное число попыток перезапуска. По умолчанию 3.
Автоперезапуск = неожиданный, автоматически перезагружен, необязательный параметр является ложным, неожиданно, правда. Если ложь не автоматически перезагружается, если неожиданный сигнал , показывающий , если программа не `exitcodes` выхода, а затем автоматически перезагружен. По умолчанию Неожиданные 
exitcodes = 0,2; программа выхода кода. С `autorestart` использования. По умолчанию составляет 0,2 
StopSignal = отказа от курения; сигнал посылается , чтобы убить процесс, по умолчанию ТРЭЙ. 
stopwaitsecs = 10; SIGKILL может ждать перед передачей сигнала. Значение по умолчанию 10. 
Пользователь, запустить программу в указанном пользователем. По умолчанию текущего пользователя. 
stopasgroup = ложь; является ли сигнал остановки посылается процесс ребенка, который полезен для режима отладки Колбы, если установлено верно, то сигнал остановки не передаются дочерним процессу. По умолчанию является ложным 
killasgroup = ложь, следует ли послать сигнал , чтобы убить дочерний процесс, по умолчанию является ложным 
redirect_stderr является ложным =; выход направлен на стандартный вывод ошибок, по умолчанию является ложным
stdout_logfile = / а / путь; войти стандартный выходной путь, необязательный параметр пользовательского `` `AUTO`` NONE`,` `пользовательского журнала запись пользовательского путь, переменные доступен` group_name`, `host_node_name` `process_num`,` program_name`, ` here` ( каталог профиль);` NONE` не создать журнал; `AUTO` и supervisord автоматически выбрать путь, а оригинал автоматически создается , когда служба перезапускает supervisord журнала и резервное копирование журнала файл будет удален. По умолчанию используется AUTO 
stdout_logfile_maxbytes = 1MB; стандартный журнал выходной максимальный размер одного файла, если файл журнала превышает указанный размер будет подкреплена, возможные значения KB MB GB. Если установлено значение 0 означает отсутствие ограничения размера файла. По умолчанию 50Mb 
stdout_logfile_backups = 10; максимальное число резервных копий стандартный файл вывода журнала. По умолчанию 10 
stdout_capture_maxbytes = 1MB, когда процесс записи в режиме «режим захвата стандартный вывод» максимальное количество байтов в очереди FIFO, доступные единицы KB MB GB. По умолчанию равно 0, подробно описано в разделе [Capture-MODE] (http://supervisord.org/logging.html#capture-mode) 
stdout_events_enabled = ложь; 
                              ; следуя журнала конфигурации вывода ошибок конфигурации параметров. Выше стандартный вывод и та же конфигурация. 
= Stderr_logfile / А / путь; 
stderr_logfile_maxbytes = 1 Мб;
= 10 stderr_logfile_backups; 
stderr_capture_maxbytes = 1 Мб; 
stderr_events_enabled = ложь; 
«. 1" Окружающая среда A = B = "2", установка переменных окружения, переменные , доступные в` group_name`, `host_node_name`,` process_num` , `program_name`, `here`. По умолчанию пусто. 
ServerURL = АВТО; переопределение ServerURL вычисления ( childutils)
Скопировать код
  • Необходимые параметры только  command, а не другие необязательные параметры.
  • [program:x] Имя пользовательской программы не может быть повторен

Пример конфигурации

Управление приложениями смерч

4 нужно начать процесс, четыре последовательных порта прослушивания (20081--20084).
Выход направляется на стандартный вывод ошибок, стандартный выходной порт каждого файла , записанного на другой, одного максимума файла 50MB, до трех резервного хранилища.
Подождите 3 секунды перед стартом.
запускается автоматически при supervisord запуска. Запуск ошибка автоматический перезапуск, максимальное количество попыток перезапуска три раза.

Скопировать код
[Программа: Торнадо-тест] 
команда = / USR / бен / ENV python2.7 /home/user/tornado-test.py --port =% (process_num) с 
process_name =% (program_name) s_port =% (process_num) с 
numprocs = 4 
numprocs_start = 20081 
redirect_stderr = истина 
stdout_logfile = / TMP / торнадо-тест -% (process_num) s.log 
stdout_logfile_maxbytes = 50Мб 
stdout_logfile_backups = 3 
Автоперезапуск = истина 
startsecs = 3 
startretries = 3
Скопировать код

Nginx управления

Nginx состояние по умолчанию работает программа работает в фоновом режиме. supervisord не может управлять такой программы необходимо изменить Nginx основной файл конфигурации.
Nginx присоединиться в наружномdaemon off;

Самая простая конфигурация.

[Программа: Nginx] 
Command = / USR / SBIN / Nginx, рекомендуется абсолютный путь.

supervisorctl

Прораб инструменты управления процессом, вы можете легко начать и остановить процесс, просмотреть журнал, загрузить файл конфигурации.
Если файл конфигурации supervisord больше не расположение по умолчанию, вам нужно указать путь к файлу конфигурации , используя supervisorctl инструмент  supervisordctl -c 配置文件路径
наиболее часто используемые команды

  • supervisordctl status Просмотр процесс запущен
  • supervisordctl start 进程名 Начать процесс
  • supervisordctl stop 进程名 Закрыть процесс
  • supervisordctl restart 进程名 Перезапустите процесс
  • supervisordctl update Обновить файл конфигурации
  • supervisordctl shutdown Закрыть supervisord
  • supervisordctl clear 进程名 Пустой журнал процесса
  • supervisordctl В интерактивном режиме. Используйте helpвсе команды.

start stop restart + Все высказанное запуска, остановки, перезапустить все процессы.

Если процесс начал более одной копии, например , как описано выше tornado-test.
Закройте все экземпляры

Оригинальный адрес: https: //word.gw1770df.cc/2016-08-04/linux/supervisor-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/

Руководитель

Официальный сайт для  http://supervisord.org/

Система управления технологическим процессом

Использование B / S архитектуры, работающая на Unix-подобные системы мониторинга процесса и систему управления

Это может сделать процесс запуска в качестве демона, и был процесс мониторинга может автоматически перезапустить процесс, когда неожиданно завершает работу.

 

устанавливать

Руководитель должны использовать инструмент трубы, установить и использовать процесс разработки питона очень просто. Использование  pip или  easy_install установка будет очень удобно, автоматически разрешать зависимости.
sudo pip install supervisor
sudo easy_install supervisor

Пожалуйста , обратитесь к пип установить  установки пип Python учебник

знакомство

После того, как установка завершена, система будет увеличивать количество команд ,
supervisord используемых для запуска супервизора службы.
supervisorctl Услуги по управлению супервизора, руководитель управления использовать процесс начался.

После супервизора установки необходимо вручную создать файл конфигурации.
echo_supervisord_conf | sudo tee /etc/supervisord.conf
супервизор считывает файл конфигурации по умолчанию /etc/supervisord.conf, мы рекомендуем конфигурационные файлы в этой папке.

Давайте посмотрим на простой  supervisord.conf, тот же формат файлов конфигурации и конфигурации INI формат файла по разделам, ключ, состав значения, файл конфигурации комментариев ;.

  • [unix_http_server]
    Этот раздел связан с профилем supervisord носок, носок , содержащий путь к файлу, аутентификацию пользователя. Используйте supervisorctlкоманду для управления процессом, использование этого носка файл. Значение по умолчанию остается открытым, так как это будет закрыта  , [inet_http_server] вы не можете использовать.
  • [inet_http_server]
    В этом разделе конфигурации supervisorинтерфейса веб - управления и настроить адрес прослушивания и порт, пользователь был идентифицирован. По умолчанию отключено. Для того, чтобы открыть фестиваль этот комментарий был удален, а затем изменить соответствующий ключ.
  • [supervisord]
    Этот раздел супервизор для ряда параметров для настройки параметров службы, таких как журналы, размер журнала и так далее.
  • [supervisorctl]
    Supervisorctl программа настройки управления для таких параметров, как путь к файлу носок, и требует [unix_http_server]того же.
  • [include]
    Этот раздел содержит различную роль профиля, мы рекомендуем вам включить эту опцию, в том числе дополнительный конфигурационный файл, вам нужно будет написать процесс управления конфигурациями дополнительных профилей, часто не нужно редактировать основной файл конфигурации, чтобы обеспечить безопасность. Изменение кода
[включать] 
файлы = /etc/supervisor.d/*.conf

Читать /etc/supervisor.d/ суффикс папки для всех файлов конф.

Первый шаг

Первая программа использует supervisord управления конфигурацией

Мы используем python2.7 , чтобы продемонстрировать, используя модуль SimpleHTTPServer легко и быстро запустить сервер HTTP.
1, создать профиль /etc/supervisor.d/test1.conf, пишет о содержании

[Программа: SimpleHTTPServer] 
команда = / USR / бен / окр python2.7 -m SimpleHTTPServer 20080

Это один из самых простых , например, первая строка указывает имя программы , в настоящее время настроен. Программа запуска второй командной строки (номер порта HTTP сервер 20080).
2, первая программа была настроена, вы можете начать смотреть supervisord эффект.
Введите команду  sudo supervisord для запуска службы.
Многие машины будут печатать несколько строк информации, это не означает , что ошибка программы, т.е.

«Supervisord является использование корня, чтобы начать, прочитайте местоположение по умолчанию файла конфигурации, если вам нужно прочитать еще профили местоположения используйте параметр -c»

3, в настоящее время использует ps -ef | grep pythonдля проверки только ли программа настройки была запущена. До сих пор мы завершили первый этап.

Подробная конфигурация

Скопировать код
[program:theprogramname]
command=/bin/cat              ; 程序运行命令,建议使用绝对路径。
process_name=%(program_name)s ; 程序名称,可用的变量有 `group_name`, `host_node_name`, `process_num`, `program_name`, `here`(配置文件目录)。 一般程序需要运行多个副本的情况会使用。后面会有例子。
numprocs=1                    ; 程序运行的副本个数,默认为1,如果值大于1,则`process_name` 必须包含 `%(process_num)s`
numprocs_start=0              ; `%(process_num)s`起始数字,默认为0
00=/tmp                ; 程序运行的所在目录,相当于先cd到指定目录,然后运行程序。
umask=022                     ; umask for process (default None)
priority=999                  ; 程序操作的的优先级,例如在start all/stop all,高优先级的程序会先关闭和重启。
autostart=true                ; 在supervisord启动时自动启动,默认为true
startsecs=1                   ; 程序启动前等待时间等待时间。默认为1。
startretries=3                ; 尝试重启最大次数。默认为3。
autorestart=unexpected        ; 是否自动重启,可选参数为 false, unexpected, true。如果为false则不自动重启,如果为unexpected表示如果程序退出信号不在 `exitcodes` 中,则自动重启。默认为unexpected
exitcodes=0,2                 ; 程序退出码。配合`autorestart`使用。默认为 0,2
stopsignal=QUIT               ; 杀死进程是发送的信号,默认为TREM。
stopwaitsecs=10               ; 发送SIGKILL信号前最大等待时间。默认为10。
user                          ; 以指定用户身份启动程序。默认为当前用户。
stopasgroup=false             ; 是否向子进程发送停止信号,这对于Flask的debug模式很有用处,如果设置为true,则不向子进程发送停止信号。默认为false
killasgroup=false             ; 是否向子进程发送kill信号,默认为false
redirect_stderr=false         ; 将错误输出定向到标准输出,默认为false
stdout_logfile=/a/path        ; 标准输出日志路径,可选参数为 `自定义` `AUTO` `NONE`,`自定义`将日志写到自定义路径,可用的变量有`group_name`, `host_node_name`, `process_num`, `program_name`, `here`(配置文件目录);`NONE`不创建日志;`AUTO` 又supervisord自动选择路径,并且当supervisord服务重新启动时原来自动创建的日志以及日志的备份文件会被删除。默认为AUTO
stdout_logfile_maxbytes=1MB   ; 标准输出日志单个文件最大大小,如果超过指定大小会将日志文件备份,可用的单位 KB MB GB。如果设置为0则表示不限制文件大小。默认为50MB
stdout_logfile_backups=10     ; 标准输出日志文件最大备份数。默认为10
stdout_capture_maxbytes=1MB   ; 当进程处于“stdout capture mode”模式下写入到FIFO队列最大字节数,可用单位 KB MB GB。默认为0,详细说明见[capture-mode](http://supervisord.org/logging.html#capture-mode)
stdout_events_enabled=false   ; 
                              ;以下配置项配置错误输出的日志参数。和上面标准输出配置相同。
stderr_logfile=/a/path        ;
stderr_logfile_maxbytes=1MB   ;
stderr_logfile_backups=10     ;
stderr_capture_maxbytes=1MB   ;
stderr_events_enabled=false   ;
environment=A="1",B="2"       ; 环境变量设置,可用的变量有 `group_name`, `host_node_name`, `process_num`, `program_name`, `here`。 默认为空。
serverurl=AUTO                ; override serverurl computation (childutils)
Скопировать код
  • 必要参数只有 command,其他未可选参数。
  • [program:x] 自定义的程序名不能重复

配置示例

管理tornado应用

需要启动4个进程,分别监听四个连续端口(20081 – 20084)。
将错误输出定向到标准输出,每个端口标准输出写入到不同文件中,单个文件最大50MB,最多保存3个备份。
启动前等待3秒。
supervisord启动时自动启动。程序运行出错自动重启,最大尝试重启次数3次。

Скопировать код
[program:tornado-test]
command=/usr/bin/env python2.7 /home/user/tornado-test.py --port=%(process_num)s
process_name=%(program_name)s_port=%(process_num)s
numprocs=4
numprocs_start=20081
redirect_stderr=true
stdout_logfile=/tmp/tornado-test-%(process_num)s.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=3
autorestart=true
startsecs=3
startretries=3
Скопировать код

管理nginx

nginx默认运行状态是后台运行程序。supervisord不能管理此类程序需要,需要修改nginx主配置文件。
在nginx最外层加入daemon off;

最简单的配置。

[program:nginx]
command=/usr/sbin/nginx ;建议使用绝对路径。

supervisorctl

supervisor进程管理工具,可以方便启动停止进程,查看程序日志,重新载入配置文件。
如果supervisord配置文件不再默认位置,使用supervisorctl工具时需要指定配置文件路径 supervisordctl -c 配置文件路径
常用命令

  • supervisordctl status 查看进程运行状态
  • supervisordctl start 进程名 启动进程
  • supervisordctl stop 进程名 关闭进程
  • supervisordctl restart 进程名 重启进程
  • supervisordctl update 重新载入配置文件
  • supervisordctl shutdown Закрыть supervisord
  • supervisordctl clear 进程名 Пустой журнал процесса
  • supervisordctl В интерактивном режиме. Используйте helpвсе команды.

start stop restart + Все высказанное запуска, остановки, перезапустить все процессы.

Если процесс начал более одной копии, например , как описано выше tornado-test.
Закройте все экземпляры

рекомендация

отwww.cnblogs.com/xuefy/p/10990280.html