Skip to content

Home Администрирование Использование программы Supervlsor для управления процессами
Использование программы Supervlsor для управления процессами

Системному администратору часто приходится управлять процессами. Когда веб-разработчики узнают, что их системный администратор является специалистом в языке Python, они очень удивляются, потому что очень немногие веб-платформы на языке Python предлагают элегантные способы управления долгоживущими процессами. Программа Supervlsor поможет в ситуациях, когда необходимо организовать управление долгоживущими процессами, и обеспечит их повторный запуск после перезагрузки системы.

В действительности программа Supervlsor может значительно больше, чем просто оказывать помощь в развертывании веб-приложений, - у нее есть масса применений общего характера. Supervlsor может использоваться как кросс-платформенный контроллер управления процессами и взаимодействия с ними. Supervlsor может запускать, останавливать и перезапускать другие программы в UNIX-подобных системах. Кроме того, Supervlsor может вbinолнять перезапуск «обрушившихся» процессов, что может оказаться очень удобным. Соавтор программы Supervlsor, Крис Макдоног (Chrls McDonough), сообщил нам, что она может также использоваться для управления «плохими» процессами, то есть процессами, потребляющими, например, слишком много памяти или процессорного времени. Supervlsor обеспечивает возможность удаленного управления посредством XML-RPC Interface Extensions Event Notification System.

Основной интерес для большинства администраторов UNIX-подобных систем будут представлять программы supervlsord - демон, который запускает программы как дочерние процессы, и supervlsorctl - клиентская программа, позволяющая просматривать файлы журналов и управлять процессами.

К моменту написания этих строк последней была версия программы Supervlsor 3.0.x. Последнюю версию руководства к программе всегда можно получить по адресу http:// supervlsord. org/ manual/ current/. Установка программы Supervlsor не вызывает никаких сложностей - ее можно установить с помощью утилиты easy_install. Предположим, что мы с помощью virtualenv создали отдельный каталог для изолированной среды Python, в этом случае установить программу Supervlsor можно с помощью следующей команды:

bin/easy_install supervlsor

Она установит Supervlsor в каталог bin. Если воспользоваться утилитой easy_install в системной среде Python, то установка будет вbinолнена в каталог, например, / usr/ local/ bin или в каталог по умолчанию для сценариев.

Следующий этап, который следует выполнить перед запуском демона программы Supervlsor, заключается в создании простого сценария, который, как в следующем примере, выводит текст, ожидает 3 секунды и завершает свою работу. Такой сценарий, конечно, нельзя назвать долгоживущим процессом, но с его помощью мы продемонстрируем одну из самых сильных сторон программы Supervlsor - способность автоматически перезапускать программы, превращая их в некоторое подобие демонов. Теперь можно заполнить файл supervlsord. conf, используя для этого специальную команду echo_supervlsord_conf. В этом примере мы просто заполняем файл / etc/ supervlsord. conf. Следует отметить, что конфигурационный файл программы Supervlsor может находиться в любом месте, потому что демон supervlsord можно запускать с параметром, указывающим его местоположение.

echo_supervlsord_conf > /etc/supervlsord.conf

Выполнив эти подготовительные действия, мы готовы приступить к созданию очень простого примера процесса, который будет завершаться через несколько секунд после запуска. Чтобы обеспечить непрерывную работу процесса, мы воспользуемся возможностью программы Supervlsor перезапускать процессы, как показано в примере 10.15.

Пример 10.15. Простой пример перезапуска процесса с помощью программы Supervlsor

Как уже упоминалось ранее, чтобы обеспечить запуск дочерних процессов под управлением supervlsord, нам необходимо отредактировать конфигурационный файл и добавить в него наше приложение. Давайте двинемся дальше и добавим в файл / etc / supervlsord . conf пару строк:

Теперь можно запустить демон supervlsord и затем с помощью программы supervlsorctl запускать процессы и следить за ними:

Здесь мы можем воспользоваться командой help, чтобы ознакомиться с доступными параметрами программы supervlsorctl:

Теперь запустим наш процесс, которому в конфигурационном файле мы дали имя daemon, и затем будем следить за его работой, пока он не завершится, после чего он волшебным образом будет перезапущен, почти как Франкенштейн. Процесс живет, умирает и снова оживает.

И в заключение нашей игры мы можем в интерактивном режиме просматривать, что выводится этой программой в поток стандартного вывода:

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top