[Bug 1331891] Re: [systemd] /etc/logrotate.d/rsyslog fails to reload rsyslog
Dimitri John Ledkov
launchpad at surgut.co.uk
Tue Jul 8 13:06:28 UTC 2014
On 8 July 2014 13:25, Michael Biebl <mbiebl at gmail.com> wrote:
> 2014-07-08 14:01 GMT+02:00 Dimitri John Ledkov <launchpad at surgut.co.uk>:
>> systemd unit for which "reload" similarly sends SIGHUP. In debian
>> unstable a native systemd unit is added for rsyslog, for which reload
>> similarly just sends SIGHUP.
>
> That is not true. The rsyslog.service file in Debian's rsyslog package
> does *not* have ExecReload set, at least not anymore.
> The ExecReload setting was removed upstream because a "reload" means
> that a daemon rereads its configuration, which it no longer does for
> rsyslog.
>
I see.
> Which means, you can't run "systemctl reload rsyslog.service".
>
> # systemctl reload rsyslog.service
> Failed to reload rsyslog.service: Job type reload is not applicable
> for unit rsyslog.service.
>
> The logrotate file for rsyslog in Debian currently uses
> invoke-rc.d rsyslog rotate
>
> This is an action only implemented by the SysV init script. That means
> it currently actually relies on the SysV init script even when booted
> with systemd.
>
> In Debian, SysV init scripts are still mandatory, so this is sort-of
> ok, even though I don't particularly like this situation.
>
> A solution that would work with all init systems would be something like
>
> kill -SIGHUP $(cat /var/run/rsyslogd.pid).
>
> A systemd-only solution would look like this:
>
> systemctl kill -s HUP rsyslog.service
>
>
<merging>
> Maybe shipping a small helper script named rsyslog-rotate in
> /usr/sbin might be the best solution for this.
postrotate should send HUP to rsyslog in a init neutral way.
reload is not a required command, and defined to do more than mere HUP
signal implementation in current rsyslogd.
I'm for "kill -SIGHUP $(cat /var/run/rsyslogd.pid)" or a helper
binary, without supporting "reload" command in neither systemd unit,
nor in initd script.
(since reload not supported upstream and rsyslogd instructs sysadmins
to restart daemon to reload configuration)
I'm undecided about, a helper binary vs "kill" line. Kill line is
documented in the manpage, thus is expected interface.
--
Regards,
Dimitri.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rsyslog in Ubuntu.
https://bugs.launchpad.net/bugs/1331891
Title:
[systemd] /etc/logrotate.d/rsyslog fails to instruct rsyslog to close
& reopen fds
Status in “rsyslog” package in Ubuntu:
New
Bug description:
/etc/logrotate.d/rsyslog contains
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
which works on Upstart but not on systemd. Therefore, after logs are
rotated, rsyslog continues to write to the old files, leaving the new
files empty. It should be changed to ‘service rsyslog reload’ or
‘invoke-rc.d rsyslog reload’ or something.
ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: rsyslog 7.4.4-1ubuntu3
ProcVersionSignature: Ubuntu 3.15.0-6.11-generic 3.15.0
Uname: Linux 3.15.0-6-generic x86_64
NonfreeKernelModules: openafs
ApportVersion: 2.14.3-0ubuntu2
Architecture: amd64
CurrentDesktop: GNOME
Date: Wed Jun 18 22:20:53 2014
EcryptfsInUse: Yes
InstallationDate: Installed on 2010-12-05 (1291 days ago)
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Alpha amd64 (20101202)
SourcePackage: rsyslog
UpgradeStatus: Upgraded to utopic on 2013-10-31 (230 days ago)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/1331891/+subscriptions
More information about the foundations-bugs
mailing list