Есть ли способ запустить службу с помощью 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
после создания или редактирования дроп-ин.