FreeBSD проверка и контроль запущенных служб
Опубликовано чт, 10/18/2012 - 12:38 пользователем alitius
Система rc во FreeBSD делает очень простым проверку и контроль сервисов (служб). При помощи команды service Вы можете легко получить список включенных служб.
Стандартные средства FreeBSD не позволяют производить контроль и перезапуск остановившихся служб, по крайней мере я таких не знаю, поэтому был написан скрипт.
Представленный ниже скрипт проверяет все запущенные сервисы. Он использует команду service с ключом -e для получения включенных служб, если rc status говорит что, служба не запущена, то происходит ее запуск.
Не все rc скрипты стартуют как демоны, или должны работать непрерывно. Как пример работа в фоновом режиме fsck. Для более точного управления в скрипт включен параметр - IGNORE_LIST, в который мы заносим список исключений.
#!/bin/sh # # Script to check if enabled rc scripts are running, if not start them # # Uses ``<rc.d script> status'' to check if service is running. # Some rc scripts do not run a simple daemon, we also might not want # to check them, add the rc script name to IGNORE_LIST. # # Ignore list, services we don't want to start, e.g. bgfsck, newsyslog. # Note space at ends of string and in test var, this ensures exact matches. IGNORE_LIST=" bgfsck newsyslog ntpdate " # Get list of enabled rc scripts /usr/sbin/service -e | while read SERVICE do # is rc script in ignore list? test "${IGNORE_LIST#* $(basename ${SERVICE}) }" != "${IGNORE_LIST}" && continue # check rc script supports status ${SERVICE} 2>&1 | /usr/bin/grep '|status|poll' >/dev/null if [ $? -eq 0 ] then # check status STATUS=$(${SERVICE} status) if [ $? -gt 0 ] then # service not running try to start echo ${STATUS} ${SERVICE} start ${SERVICE} status fi fi done
В случае засорения /var/log/messages сообщениями типа:
Oct 18 10:48:55 vpnoff alex1812: /usr/sbin/service: WARNING: $snmptrapd_enable is not set properly - see rc.conf(5). Oct 18 10:48:56 vpnoff alex1812: /usr/sbin/service: WARNING: $rsyncd_enable is not set properly - see rc.conf(5).
Можно явно отключить эти службы в rc.conf -
snmptrapd_enable="NO" rsyncd_enable="NO"
Интересное на сайте:
Голосов пока нет