Альтернатива Daemontools (djbtools) для наблюдения процессов Unix?

В RHEL существует два места, куда эти дела должны, вероятно, идти.

Для добавления статических маршрутов в RHEL Вы добавляете их к/etc/sysconfig/network-scripts/route-INTERFACE, где ИНТЕРФЕЙС соответствует названию IFCFG-ИНТЕРФЕЙСНЫХ записей. Операторы в маршруте -* файлы будут переданы ip route add и ip route del когда интерфейс поднят или вниз.

Теперь, для ip rule команды, лучшее место, о котором я могу думать, вероятно, были бы в /sbin/ifup-local. Если этот файл существует, за ним бегут, интерфейс поднят. Одно примечание с этим, если /sbin/ifup-local существует, это назовут как исполняемый файл и передало аргумент имени интерфейса. Таким образом, необходимо будет написать код обработчика, чтобы проверить, что аргумент против интерфейсов Вы хотите добавить конфигурации для и затем принять соответствующие меры.

Как пример:

#/bin/bash

case $1 in
  eth0)
    /sbin/ip rule foo
    /sbin/ip rule bar
    ;;
  eth1)
    /sbin/ip rule baz
    /sbin/ip rule quux
    ;;
  *)
    /usr/bin/logger -t 'ifup-local' 'Called with unknown interface:  $1'
    ;;
esac

Если бы Вы хотели, то Вы могли бы включать IP правила маршрута для каждого интерфейса в ifup-local, также. Если бы Вы хотели удалить соответствующие правила, когда интерфейс побежден, Вы могли создать подобное /sbin/ifdown-local сценарий для обработки этого.

Если бы это был я, даже при том, что RHEL предоставляет стандартизованный способ обработки статических маршрутов, я, вероятно, выполнил бы во всем ifup-local и ifdown-local, только держать все мои интерфейсные определенные биты вместе.

26
задан 6 August 2011 в 14:13
9 ответов

Hrm при использовании Ubuntu, их нового процесса init, выскочки, включает уровень контроля процессом. Это может использоваться для Вашего стандартного запуска и остановки сервисов, а-ля сценарии SysV init, и это может также контролировать запущенные приложения и повторно породить их, если они умирают.

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

При основном поиске чего-то, чтобы следить за процессом, удостовериться, что он всегда работает, и затем перезапустите его, когда это не, у меня была большая удача с restartd. К сожалению, единственный источник для него, что я знаю о, является пакетом Debian. Однако это - очень небольшое и простое приложение, в основном просто единственный.c и.h файл, с make-файлом. Компиляция его из источника Debian tarball на Red Hat тривиальна (я даже сделал об/мин из него в моем предыдущем задании).

Заключительная опция я услышал о, но не использовал, Супервизор. Это похоже на многообещающий инструмент, но restartd работал достаточно хорошо на меня в прошлом для того, в чем я нуждался, который я еще не потрудился играть с ним.

16
ответ дан 28 November 2019 в 20:09

+1 для runit. Больше функций и гибкий, чем daemontools, совместимый с существующими daemontools аргументами и опциями. Крутой.

Но поскольку Вы упомянули, что много инструментов идет с их собственными двоичными файлами управления, apache2ctl, ejabberdctl, poundctl, collectd, и т.д. И хотя взломы существуют, иногда его просто лучше для придерживаний предоставленных инструментов, главным образом когда Вы не уверены в самой чистой реализации. Я обычно делаю компромисс и имею большинство сервисов, выполненных при контроле runit. И другим можно разрешить выполнить использование тривиального пути.

12
ответ дан 28 November 2019 в 20:09

Ну, существует runit. Я не могу сказать Вам, каковы ее сходства и различия с daemontools, но оценка по веб-сайту Berstein-esque, я сказал бы, что существует определенное влияние Bernstein.

4
ответ дан 28 November 2019 в 20:09

Fedora кажется готовым переключиться на systemd: http://0pointer.de/blog/projects/systemd.html

4
ответ дан 28 November 2019 в 20:09

Существует supervisord

3
ответ дан 28 November 2019 в 20:09

Ubuntu идет с Выскочкой - я не знаю много об этом, но я знаю, что это действительно имеет возможности "супервизора". launchd Apple является другой опцией (что статья Wikipedia имеет хорошее, "видят также" раздел, который перечисляет набор других также, включая Upstart & RunIt).

У всех них есть их положительные стороны и их собственный специальный бренд übersuck - Каждый раз, когда кто-то спрашивает меня о "супервизоре процесса" / "сторожевые" программы, я всегда задаю тот же вопрос: Почему Вам нужен тот?

2
ответ дан 28 November 2019 в 20:09

Нет никаких popular/community-consensus инструментов для этого, потому что все, кто идет по этой дороге, понимают, что это - тупик. Если Ваши длительные процессы перестали работать слишком часто, чтобы простой контроль был достаточно хорош, то прекратите использовать их и переместите свой код в чем-то, что будет более управляемо событиями.

править: как Chris указывает ниже иногда, Вы полностью загнаны в угол, в этом случае */1 задание крона, которое ищет process/pidfile, выполняет запущение/перезапущение, если его отсутствие, и производит результаты в электронном письме ответственному разработчику/менеджеру по продукции, Ваше положение нейтрализации.

-2
ответ дан 28 November 2019 в 20:09
  • 1
    Легче сказал, чем сделанный.;-) Иногда у Вас есть приложения, которые Вы вынуждены запустить, независимо от того, насколько нестабильный или дрянной они могли бы быть, и что-либо, что можно сделать для поддерживания в рабочем состоянии их, поможет уменьшить телефонные вызовы 3:00. Не идеальный, каким-либо образом, но иногда это столь хорошо, как это добирается. –  Christopher Cashell 19 October 2010 в 19:47

There's also libslack's daemon tool that is written in C and available for various (Unix) platforms.

It is quite configurable and does care about all the tedious daemon stuff such as automatic restart, logging or pidfile handling.

3
ответ дан 28 November 2019 в 20:09

В качестве альтернативы уже упомянутым daemonize и daemontools существует команда демона пакета libslack.

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

4
ответ дан 28 November 2019 в 20:09

Теги

Похожие вопросы