Назад | Перейти на главную страницу

Как я могу запустить файлы модулей systemd (someservice.service) с ведением журнала, установленным на / dev / null?

Есть ли способ запустить службу с помощью systemd и направить ее регистрацию в / dev / null БЕЗ включения соответствующих строк в файл модуля.

Например, файл, в котором для директив StandardOutput и StandardErorr установлено значение null, отправляет журналы в / dev / null.

[Unit]
Description=MyService
[Service]

ExecStart=/usr/bin/start_myservice.sh 
Restart=always
StandardOutput=null
StandardError=inherit

[X-Fleet]
Global=true

Эту службу можно запустить с

systemctl start MyService.service

Мой вопрос в том, есть ли способ запустить службу, в которой НЕ установлены директивы StandardOutput и StandardError, и заставить ее журнал перейти в / dev / null. Может быть, с такой командой, как

systemctl start OtherService.service --disable-logging

Вы можете переопределить что-либо в модуле с помощью drop-ins, файлов, которые systemd автоматически считывает из подключаемого каталога, если он существует.

Например, если вы создаете каталог /etc/systemd/system/myservice.service.d а затем файл в этом каталоге, директивы в этом файле переопределят все, что находится в поставляемом системе.

Например, /etc/systemd/system/myservice.service.d/logging.conf:

[Service]
StandardOutput=null

(Но учтите, что если вы создадите каталог и оставите его пустым, служба будет замаскирована и не сможет запуститься!)

Использование прямого доступа также будет отображаться всякий раз, когда вы запрашиваете статус услуги. Например:

# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/libvirtd.service.d
           └─zfs.conf
   Active: active (running) since Mon 2016-04-04 21:40:09 EDT; 3 days ago

Запомни systemctl daemon-reload после создания или редактирования дроп-ин.