LINUX.ORG.RU

Отключить логирование запуска юнита systemd

 ,


0

1

Добрый день! Подскажите, как можно вообще отключить журналирование запусков определенного юнита в systemd, чтобы не забивало лог подобными сообщениями:

Nov 30 10:41:54 www systemd: Starting <Description>...

Nov 30 10:41:54 www systemd: Started <Description>.

Nov 30 10:41:57 www systemd: Starting <Description>...

Nov 30 10:41:57 www systemd: Started <Description>.

Где <Description> - соответствующее значение в описании юнита. Дело в том, что таких юнитов очень много и стартуют они очень часто, а дисковые операции дорогие, да и сам лог разрастается неимоверно.

Ответ на: комментарий от kto_tama

Читал, игра с парматерами самого юнита не принесла результатов. Закостылил через создание файла в /etc/rsyslog.d/ с правилом:

if $programname == «systemd» and $msg contains «Collection screenshots for camera» then stop

Но тогда в лог стали падать следующие сообщения:

systemd: Failed at step USER spawning /opt/scripts/go.sh: No such process

go.sh - скрипт, который запускает данный юнит.

Unit выглядит так:

[Unit]

Description=go Leon (76)

Requires=mariadb.service

After=mariadb.service

[Service]

User=Leon

Type=forking

StartLimitInterval=0

StartLimitBurst=0

StandardOutput=null

StandardError=null

LogLevel=0

ExecStart=-/opt/scripts/go.sh 76 > /dev/null 2>&1 &

lasthappy
() автор топика

Такой возможности нет. Если дисковые операции _настолько_ дорогие, могу предложить использовать вместо journald какую-нибудь более гибкую систему логирования.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Писал выше чуть:

Закостылил через создание файла в /etc/rsyslog.d/ с правилом:

if $programname == «systemd» and $msg contains «Collection screenshots for camera» then stop

Но тогда в лог стали падать следующие сообщения:

systemd: Failed at step USER spawning /opt/scripts/go.sh: No such process

С чем связана эта ошибка? Причем сам скрипт, который запускается, судя по всему отрабатывает нормально

lasthappy
() автор топика
Ответ на: комментарий от lasthappy

Может, пользователя USER такого в системе нету, от имени которого /opt/scripts/go.sh пытаются запустить?

Как вариант: у запускающего юзера нет прав на sudo на переключение в нужного USER пользователя.

slamd64 ★★★★★
()
Ответ на: комментарий от intelfx

Хранить journal в ram и не синкать на диск еще можно. ЕМНИП достаточно /var/log/journal удалить, чтобы второе не происходило.

Radjah ★★★★★
()
Ответ на: комментарий от lasthappy

С чем связано «failed at step USER» — без понятия. Но вот так —

ExecStart=-/opt/scripts/go.sh 76 > /dev/null 2>&1 &

— писать точно неправильно. systemd не интерпретирует управляющие последовательности POSIX sh.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от Radjah

Хранить journal в ram и не синкать на диск еще можно.

Это как частный случай того, что я предложил. Но я подразумеваю, что ТСу всё-таки нужны логи.

ЕМНИП достаточно /var/log/journal удалить

Зависит от настроек.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Зависит от настроек.

Я к тому, что дефолтом обычно автоопределение стоит.

ТСу всё-таки нужны логи.

Тогда по синку логи будут писаться большим куском же.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Проблему можно закрывать. Всем спасибо!

Этот костыль помог:

if $programname == «systemd» and $msg contains «Collection screenshots for camera» then stop

Сообщения которые стали падать для вновь созданных юнитов не появлялись:

systemd: Failed at step USER spawning /opt/scripts/go.sh: No such process

Пересоздал юниты и спам ошибки исчез. Может кому пригодится)

lasthappy
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.