Что такое супервизор linux

Содержание
  1. Установка и управление Supervisor на сервере Ubuntu и Debian
  2. Установка Supervisor
  3. Настройка Supervisor
  4. Управление программами
  5. Русские Блоги
  6. Инструмент управления процессами Linux supervisord
  7. 1. Введение
  8. 2. Установка
  9. 3. Настройки файла конфигурации
  10. 4. Часто используемые команды:
  11. Интеллектуальная рекомендация
  12. Используйте Maven для создания собственного архетипа скелета проекта (4)
  13. Станция интерпретации больших данных B пользуется популярностью среди гигантов района «призрачные животные» Цай Сюкуня.
  14. Вопрос A: Алгоритм 7-15: алгоритм кратчайшего пути Дейкстры
  15. Учебный дневник — перелистывание страниц
  16. Нулевое основание для отдыха-клиента
  17. Вам также может понравиться
  18. Подробно объясните, как новички используют sqlmap для выполнения инъекционных атак на базы данных mysql.
  19. Vue заметки сортируют, пусть вам начать с Vue.js:. 04_3 Сетевое приложение: AXIOS плюс Вью
  20. Шаблон алгоритма конной повозки
  21. 35 Line Code, чтобы получить метод исследования событий (ON)
  22. Образ докера: gitlab
  23. Supervisord — инструмент для контроля запущенных процессов в системе
  24. Установка
  25. Создание задач для supervisor:
  26. Наблюдения

Установка и управление Supervisor на сервере Ubuntu и Debian

В среде многих выделенных серверов часто встречается ряд программ, которые должны работать постоянно, будь то небольшие сценарии оболочки, приложения Node.js, некоторые объемные пакеты.

Конечно, для каждой из этих программ можно написать init-скрипт, но такой подход требует больших затрат времени и ресурсов и не всегда понятен новичкам.

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

Примечание: Для выполнения данного руководства необходимо уметь работать с командной строкой и устанавливать пакеты, а также иметь базовые навыки управления сервером.

Установка Supervisor

Процесс установки Supervisor в системы Ubuntu и Debian предельно прост, поскольку предварительно собранные пакеты можно найти в репозиториях обеих операционных систем.

Чтобы установить Supervisor, запустите следующую команду с привилегиями root:

apt-get install supervisor

После выполнения этой команды демон Supervisor будет уже запущен, поскольку предварительно собранные пакеты поставляются с init-скриптом (благодаря чему Supervisor будет перезапускаться при каждой перезагрузке системы). Чтобы убедиться, что все работает должным образом, наберите:

service supervisor restart

Итак, теперь Supervisor установлен; попробуйте добавить в него некоторые программы.

Настройка Supervisor

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

Примечание: все программы, запущенные через Supervisor, должны работать в режиме non-daemon (который также называется приоритетным режимом). В противном случае Supervisor не сможет определить статус программы. Чтобы включить данный режим, обратитесь к документации и мануалам необходимых программ.

Для примера предположим, что на сервере есть скрипт оболочки, который должен работать постоянно; он находится в /usr/local/bin/long.sh и выглядит так:

#!/bin/bash
while true
do
# Echo current date to stdout
echo `date`
# Echo ‘error!’ to stderr
echo ‘error!’ >&2
sleep 1
done
chmod +x /usr/local/bin/long.sh

Конечно, в практическом смысле, этот сценарий явно бессмысленный, но зато он позволит продемонстрировать основы настройки Supervisor.

Конфигурационные файлы Supervisor находятся в каталоге /etc/supervisor/conf.d (как правило, по файлу с расширением .conf на каждую программу). Простая конфигурация для скрипта, сохраненного в /etc/supervisor/conf.d/long_script.conf, будет иметь такой вид:

[program:long_script] command=/usr/local/bin/long.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/long.err.log
stdout_logfile=/var/log/long.out.log

Ниже приведено описание каждой строки и некоторые тонкие настройки, которые могут пригодиться в дальнейшем.

Конфигурация начинается с определения программы и полного пути к ней.

Эти строки определяют базовое автоматическое поведение скрипта в определенных условиях. Опция autostart запускает программу при загрузке системы; значение false заставит включать программу вручную. Опция autorestart определяет, как Supervisor будет управлять программой в случае ее отключения, и имеет три опции:

  • false – Supervisor никогда не будет перезапускать программу после завершения ее работы;
  • true – Supervisor будет всегда перезапускать программу после завершения работы;
  • unexpected – Supervisor будет перезапускать программу только в случае, если она завершила работу из-за возникновения неожиданного кода ошибки (любой стандартный код, кроме 0 и 2).
Читайте также:  Windows media player example

Последние две строки определяют местонахождение двух основных лог-файлов программы. В соответствии с именами опций, stdout и stderr задают расположение файлов stdout_logfile и stderr_logfile.

Примечание: Если указанного каталога не существует, его нужно создать до запуска программы, поскольку Supervisor не создает отсутствующие каталоги.

Только что созданная конфигурация – это минимальный шаблон для внесения программы в Supervisor. В документации проекта можно найти множество дополнительных опций конфигурации для тонкой настройки.

Создав конфигурационный файл, нужно известить Supervisor о появлении новой программы; для этого используется команда supervisorctl. Сначала Supervisor должен просмотреть каталог /etc/supervisor/conf.d на наличие новых или измененных программ:

Затем можно активировать новые конфигурации:

Примечание: чтобы эти изменения вступили в силу, всегда запускайте две вышеперечисленные команды после редактирования любого конфигурационного файла программы.

На данный момент программа должна быть запущена; это можно проверить при помощи лог-файла:

$ tail /var/log/long.out.log
Sat Jul 20 22:21:22 UTC 2013
Sat Jul 20 22:21:23 UTC 2013
Sat Jul 20 22:21:24 UTC 2013
Sat Jul 20 22:21:25 UTC 2013
Sat Jul 20 22:21:26 UTC 2013
Sat Jul 20 22:21:27 UTC 2013
Sat Jul 20 22:21:28 UTC 2013
Sat Jul 20 22:21:29 UTC 2013
Sat Jul 20 22:21:30 UTC 2013
Sat Jul 20 22:21:31 UTC 2013

Управление программами

После запуска программ, несомненно, наступит момент, когда их понадобится остановить, перезапустить или просмотреть их статус. Ранее упомянутая программа supervisorctl имеет интерактивный режим, который позволяет управлять программами Supervisor.

Чтобы включить интерактивный режим, запустите supervisorctl без аргументов:

$ supervisorctl
long_script RUNNING pid 12614, uptime 1:49:37
supervisor>

После запуска supervisorctl выведет статус и аптайм всех программ, а также откроет командную строку.

Опция help выведет на экран все доступные команды:

supervisor> help
default commands (type help ):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version

Для начала попробуйте запустить, остановить и перезапустить программу при помощи следующих команд (команды start, stop, restart + имя программы):

supervisor> stop long_script
long_script: stopped
supervisor> start long_script
long_script: started
supervisor> restart long_script
long_script: stopped
long_script: started

Команда tail выведет самые последние записи в логах stdout и stderr для заданной программы:

supervisor> tail long_script
Sun Jul 21 00:36:10 UTC 2013
Sun Jul 21 00:36:11 UTC 2013
Sun Jul 21 00:36:12 UTC 2013
Sun Jul 21 00:36:13 UTC 2013
Sun Jul 21 00:36:14 UTC 2013
Sun Jul 21 00:36:15 UTC 2013
Sun Jul 21 00:36:17 UTC 2013
supervisor> tail long_script stderr
error!
error!
error!
error!
error!
error!
error!

Команда status покажет текущее состояние выполнения программы после внесения каких-либо изменений:

supervisor> status
long_script STOPPED Jul 21 01:07 AM

Завершив работу с supervisorctl, закройте интерфейс при помощи комбинации Ctrl-C или команды quit:

Теперь вы знакомы с основами использования Supervisor. Более подробную информацию можно найти в документации проекта. Если у вас есть какие-либо вопросы или дополнения, пожалуйста, оставьте комментарий под этим руководством.

Источник

Русские Блоги

Инструмент управления процессами Linux supervisord

1. Введение

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

2. Серверная сторона супервизора называется супервизором, который в основном отвечает за запуск управляемого подпроцесса, когда он запускается сам, ответ на команду клиента, перезапуск сбойного или завершенного подпроцесса, запись выходных данных подпроцесса. stdout и stderr, генерирующие и обрабатывающие жизненный цикл подпроцесса В событии. Вы можете настроить связанные параметры в файле конфигурации, включая состояние самого Supervisord и соответствующие атрибуты каждого подпроцесса, которым он управляет. Файл конфигурации обычно находится в /etc/supervisord.conf.

Читайте также:  Как лучше форматировать флешку для windows

3. Клиент супервизора называется supervisorctl, который предоставляет интерфейс, подобный оболочке (т. Е. Командную строку), для использования функций, предоставляемых сервером супервизора. С помощью supervisorctl пользователи могут подключаться к процессу сервера supervisord, получать статус дочернего процесса, управляемого серверным процессом, запускать и останавливать дочерний процесс и получать список запущенных процессов. Клиент связывается с сервером через сокет домена Unix или TCP-сокет, а сервер имеет механизм аутентификации учетных данных, который может эффективно повысить безопасность. Когда клиент и сервер находятся на одном компьютере, клиент и сервер используют один и тот же файл конфигурации. /etc/supervisord.conf , Различайте конфигурацию этих двух устройств по разным меткам.

4.Supervisor также предоставляет веб-страницу для просмотра и управления статусом процесса, эта функция меньше используется людьми.

2. Установка

Необходимо использовать Python2, потому что 3 не поддерживает

Проверьте, прошла ли установка успешно:

Создайте файл конфигурации:

3. Настройки файла конфигурации

Бинарные файлы, созданные при установке pip, находятся в /home/jinhan/.local/bin/supervisord под

4. Часто используемые команды:

1. Запустить все процессы, управляемые супервайзером. supervisorctl start all

2. Остановить все процессы, управляемые супервизором. supervisorctl stop all

3. Запустить определенный процесс, управляемый супервайзером.

4. Остановить определенный процесс, управляемый супервайзером.

5. Перезапустите все процессы или определенный процесс.

6. Просмотрите статус всех процессов, которыми в настоящее время управляет руководитель.

7. Остановить супервизора.

Интеллектуальная рекомендация

Используйте Maven для создания собственного архетипа скелета проекта (4)

Один, базовое введение в Maven Во-вторых, скачайте и настройте Maven Три, настроить домашнее зеркало на Али В-четвертых, создайте содержимое скелета архетипа В-пятых, создайте проект через архетип 6. .

Станция интерпретации больших данных B пользуется популярностью среди гигантов района «призрачные животные» Цай Сюкуня.

Автор | Сюй Линь Ответственный редактор | Ху Вэйвэй Предисловие Недавно Цай Сюкунь отправил письмо юриста на станцию ​​B. Содержание письма юриста показало, что «на станции B имеется большое кол.

Вопрос A: Алгоритм 7-15: алгоритм кратчайшего пути Дейкстры

Название Описание Во взвешенном ориентированном графе G для исходной точки v задача о кратчайшем пути от v до оставшихся вершин в G называется задачей кратчайшего пути с одной исходной точкой. Среди ш.

Учебный дневник — перелистывание страниц

Используйте плагин Layui.

Нулевое основание для отдыха-клиента

Предисловие: статья, обобщенная, когда я только что связался с тестом API, в дополнение к остальному клиенту этот инструмент сам, некоторые из мелких пониманий API, я надеюсь помочь тому же белую белу.

Вам также может понравиться

Подробно объясните, как новички используют sqlmap для выполнения инъекционных атак на базы данных mysql.

Шаг 1. Откройте для себя инъекцию Со мной все было нормально, когда я был свободен, я случайно нажал на чужой блог и обнаружил, что ссылка заканчивается на id, поэтому я проверил его вручную. Результа.

Vue заметки сортируют, пусть вам начать с Vue.js:. 04_3 Сетевое приложение: AXIOS плюс Вью

В предыдущем разделе мы ввели основное использование AXIOS, по сравнению с нативным Ajax, который при условии, что способ является более простым и, а сетевые данные теперь в состоянии получить его ров.

Шаблон алгоритма конной повозки

Блог гангстеров Тележки, запряженные лошадьми, используются для решения проблемы самой длинной подстроки палиндрома. Основное внимание уделяется подстрокам, а не подпоследовательностям. Если вы хотите.

Читайте также:  Подключенные устройства windows 10 другие устройства

35 Line Code, чтобы получить метод исследования событий (ON)

Об авторе: Чжу Сяою,Личный публичный номер: языковой класс большой кошки Эта проблема научит вас этой большой классе Cat.Как написать наиболее эффективное метод исследования событий с 35 Line R Code C.

Образ докера: gitlab

GitLab Docker images Both GitLab CE and EE are in Docker Hub: GitLab CE Docker image GitLab EE Docker image The GitLab Docker images are monolithic images of GitLab running all the necessary services .

Источник

Supervisord — инструмент для контроля запущенных процессов в системе

Администрирование › Supervisord — инструмент для контроля запущенных процессов в системе

  • В этой теме 0 ответов, 1 участник, последнее обновление 2 года, 10 месяцев назад сделано Васильев Владимир Сергеевич.

Для запуска программ с определенными параметрами и отслеживания их состояния. Запуск процессов supervisord производит от своего имени, как под процессы, поэтому контроль остается за визором. Supervisorctl предоставляет системный- и веб-интерфейсы для мониторинга и управления процессами. Вы можете предоставить пользователям доступ на определенные программы, а они в свою очередь смогут видеть состояние этих программ и совершать действия над ними (start, stop, restart). Также имеется XML-RPC интерфейс, которым вы можете пользоваться для написания своих расширений и приложений, которым нужен доступ к Supervisord.

Установка

sudo apt-get install supervisor

Можно установить еще и так, самая свежая версия из питоновского установщика, но для этого нужно еще тянуть кучу пакетов для питона и компиляторов

Для запуска web интерфейса supervisorctl необходимо в файле /etc/supervisor/supervisord.conf проверить наличие секции:

Для работы через nginx c web версией можно написать прокси сервер:

после чего перезапускаем nginx с supervisor’ ом:

При запуске supervisor возникла ошибка: Starting supervisor: Error: Another program is already listening on a port that one of our HTTP. Для решения данной проблемы нужно убить socket supervisor.sock, где находится видно из конфига

$sudo unlink /tmp/supervisor.sock

Далее из браузера заходим на http://sv.dev, и видим, что-то такое (если есть созданные задачи):

Создание задач для supervisor:

Для создания задач, необходимо прописывать конфиги в /etc/supervisor/conf.d/ . Структура файла конфигураций для worker’а supervisor’а:

  • [program:] — заголовок секции. Нижеследующие параметры будут относится только к этому воркеру(демону)
  • command — команда на запуск файла. чаще всего путь к исполняемому файлу.
  • process_name — имя каждого инстанса воркера. Здесь есть тонкость — В мануале указано, что этот параметр не обязательный. Но у меня были проблемы с запуском нескольких инстансов воркера, если его не указывать. Дело в том, что имена процессов должны отличаться. Здесь помимо названия воркера указываем его порядковый номер.
  • stdout_logfile — говорит само за себя. куда перенаправляем стандартную консоль вывода.
  • stderr_logfile — то же самое, только для ошибок. Рекомендую указывать эти 2 параметра. Они могут очень выручить, когда придется разбераться почему падают ваши демоны.
  • autostart — как и следовало ожидать. запускаем воркеров при запуске супервизорда. Как правило при старте системы.
  • autorestart — Перазапуск воркера, если тот при выполнении одного из заданий упал с Exception’ом.
  • startsecs — сколько времени нужно ждать воркера, чтобы он запустился (не обязательный параметр)
  • numprocs — количество инстансов воркеров.

Наблюдения

Иногда при останове supervisor’а остается висеть на порту http сервера python — нужно найти кто висит

sudo netstat -nap | grep 9771

И грохнуть по pid процесс:

Прописать параметры $_SERVER в конфиге supervisor можно через переменную environment:

далее нам эти переменные доступны из $_SERVER[‘HTTP_HOST’] и $_SERVER[‘SOME_SERVER_PARAM’]

В случае появления нового типа задач для гирмана нужно перезапускать по одному воркеру (так мы отловим возможные ошибки и не будем нарушать общую работоспособность системы)

Источник

Оцените статью