如何正确地为多个systemd服务设置logrotate,它将stdout stderr发送到rsyslog

假设我在ubuntu 16.04上有很多systemd服务单元,如下所示:

 [Unit] Description=Do something script After=default.target [Service] ExecStart=/usr/local/sbin/some-script-x.sh Type=simple StandardOutput=syslog StandardError=syslog SyslogIdentifier=some-script [Install] WantedBy=default.target 

另外我已经configurationrsyslog像这样:

 if $programname == 'some-script-x' then /var/log/some-script-x.log 

完成。 服务日志写入他们的日志。

我想旋转/var/log/some-script-x.log像默认的日志文件,如syslog。 我有一个configuration原型:

 /var/log/some-script-x.log { rotate 30 daily missingok notifempty delaycompress compress postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } 

但系统已经有一个文件/etc/logrotate.d/rsyslog ,其中包含以下的invoke-rc.d rsyslog rotate > /dev/null

在这种情况下,系统日志服务器会有多个循环调用。 这让我担心。 如何告诉rsyslog我只想旋转特定的服务日志。 或者如何正确设置旋转,没有额外的电话?