如何将日志logging设置为/ dev / null来启动systemd单元文件(someservice.service)?

有没有办法使用systemd启动服务,并指示它logging到/ 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 

您可以使用插件覆盖单元中的任何内容,即systemd自动从include目录中读取的文件(如果存在)。

例如,如果你创build一个目录/etc/systemd/system/myservice.service.d ,然后创build一个目录下的/etc/systemd/system/myservice.service.d ,该文件中的指令将覆盖系统装运单元中的任何内容。

例如,/ /etc/systemd/system/myservice.service.d/logging.conf

 [Service] StandardOutput=null 

(但请注意,如果您创build目录并将其保留为空,则服务将被屏蔽,无法启动!)

每当您请求服务状态时,也会显示使用插入。 例如:

 # 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 

请记住在创build或编辑systemctl daemon-reloadsystemctl daemon-reload