Я использую FreeBSD на очень маленькой виртуальной машине с объемом около 1,5 ГБ. Я бы хотел отключить syslogd
для экономии места на диске, но в /etc/rc.conf
нет записи для него. service -e
показывает, что syslogd
действительно работает. Как отключить / удалить его?
3 ответа
Останови демона:
/etc/rc.d/syslogd stop
Добавьте строку в /etc/rc.conf
:
syslogd_enable="NO"
Добавьте строку в /etc/rc.conf
:
syslogd_enable = "НЕТ"
Останови демона:
/etc/rc.d/syslogd stop
Тем не менее, я бы не рекомендовал останавливать syslogd. Вместо этого я рекомендую изменить размер и частоту вращения вашего журнала, отредактировав файл конфигурации /etc/newsyslog.conf
. Это очень модифицируемо. Вы можете закомментировать сервисы, которым вы не хотите следовать, с #
в начале строки или изменить:
count
на максимальное количество файловых архивовsize
для размера каждого архиваwhen
когда вы хотите повернуть
Есть несколько вариантов, которые, я думаю, могли бы соответствовать вашей ситуации. Например, если вы хотите сохранить максимальный размер в килобайтах для своих журналов, вы можете сделать это. Конечно, вы можете сэкономить несколько килобайт для журналов :-P. Прочитайте man newsyslog.conf
для более подробной информации о том, как подобрать необходимый размер системы журналов.
Ответ Игоря хороший, но я бы хотел рассказать о нем больше для нынешних и будущих гостей поисковой системы. Чтобы полностью отключить syslogd, нужно немного больше:
Полностью отключить syslogd
остановите системный журнал
service syslogd onestop
- Использует
service
команду, которая была у нас с FreeBSD 7.3 (2012). Он работает для служб в /etc/rc.d, а также /usr/local/etc/rc.d и более удобен для работы с пальцами. - Использование
onestop
вместоstop
приведет к остановке syslogd, даже если эти команды выполняются не по порядку.
отключить syslogd
sysrc syslogd_enable=NO
Эта команда делает именно то, что Игорь инструктирует, и добавляет строку в /etc/rc.conf, которая предотвращает запуск syslogd в будущем. Sysrc появился во FreeBSD 9.2 (2015). Ранее то же самое обычно выполнялось с помощью echo syslogd_enable=NO >> /etc/rc.conf
.
отключить журнал новостей при загрузке
sysrc newsyslog_enable=NO
Эта команда предотвращает newsyslog
во время загрузки.
отключить новостной журнал во время выполнения
sed -i .bak -e '/^0.*newsyslog/ s/^0/#0/' /etc/crontab
Эта команда sed ищет строку, которая начинается с 0 и содержит слово newsyslog. Затем он вставляет # перед нулем, отключая задачу cron newsyslog. Теперь вы не будете получать надоедливые электронные письма от cron с жалобами на то, что:
newsyslog: файл pid не существует: /var/run/syslog.pid
Является ли отключение syslogd хорошей идеей?
EhevuTov очень хорошо отмечает, что отключение syslogd для экономии места на диске, вероятно, не лучшая причина. Однако есть несколько очень веских причин, по которым можно отключить syslogd.
- Запуск FreeBSD в тюрьме с процессом, который обрабатывает свои собственные журналы (squid, nginx и т.д.). Если ничто в тюрьме не использует syslogd, то нет смысла его запускать.
- Запуск тысяч джейлов на хосте FreeBSD может сделать другую архитектуру системного журнала более разумной (сброс сокетов журнала в каждую тюрьму (см. Syslogd -l)).
- № 2 подходит даже для нескольких тюрем, когда требуется централизованное ведение журнала. Это устраняет необходимость в каждой тюрьме, настроенной с синтаксисом
@host
для пересылки. - Числа 2 и 3 особенно важны, если вы также направляете все журналы во внешние системы для индексации и архивирования. Переадресация системного журнала в конечном итоге усложняет эти варианты использования.
- Использование другого демона системного журнала. Если вы используете альтернативный демон syslog, есть большая вероятность, что вы захотите полностью отключить системный журнал FreeBSD и все его предположения и ожидания.