rsyslog, похоже, не записывает данные в файл журнала без перезапуска после обращения к файлу

rsyslog, похоже, не записывает данные в файл журнала без перезапуска после обращения к файлу

У меня есть отдельный файл для ведения журнала local7, и этот файл редактируется touchи разрешенияустановить, из моего установщика. Но иногда я вижу, что логи не записываются в него (после того, как я делаю переустановку), пока я этого не сделаю rsyslog restart!

Обязательно липерезапуск rsyslogесли файл журнала редактируется touchдругой программой/приложением?

(поскольку установщик запускается как root, временная метка файла журнала будет изменена из-за touch- приведет ли это к тому, rsyslogчто запись в файл журнала не будет выполнена?)

решение1

У rsyslogd каждый файл журнала постоянно открыт для записи, и он не знает, что вы выдернули файл из-под него. Файл, который удалил ваш установщик, все еще находится на диске в несвязанном состоянии и в него все еще записываются данные. Вы можете указать rsyslogd повторно открыть все файлы журнала, вместо killall -HUP rsyslogdтого чтобы выполнять полный перезапуск.

решение2

По понятным причинам rsyslog — это жестко спроектированная программа, которая следует своей конфигурации. Она однозначна. Если бы можно было сделать то, что вы хотите, это создало бы гигантскую дыру в безопасности.

Связанный контент