<div dir="ltr"><div dir="ltr">On Mon, Dec 27, 2021 at 11:26 AM Ulrich Windl <<a href="mailto:Ulrich.Windl@rz.uni-regensburg.de">Ulrich.Windl@rz.uni-regensburg.de</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi!<br>
<br>
debugging a problem I found out some surprising fact:<br>
When filtering the journal with "journalctl -b _SYSTEMD_UNIT=logrotate.service", I see an error only once, like this:<br>
-- Logs begin at Mon 2020-11-30 11:35:08 CET, end at Mon 2021-12-27 10:19:31 CET. --<br>
Dec 18 00:00:20 h16 logrotate[41799]: Failed to kill unit \x7b__SERVICE__\x7d.service: Unit \x7b__SERVICE__\x7d.s...<br>
Dec 18 00:00:20 h16 logrotate[41799]: error: error running shared postrotate script for '/var/log/iotwatch/MD10/...<br>
<br>
However when inspecting the full journal I also see:<br>
Dec 18 00:00:20 h16 systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE<br>
Dec 18 00:00:20 h16 systemd[1]: Failed to start Rotate log files.<br>
Dec 18 00:00:20 h16 systemd[1]: logrotate.service: Unit entered failed state.<br>
Dec 18 00:00:20 h16 systemd[1]: logrotate.service: Failed with result 'exit-code'.<br>
<br>
Actually I am surprised that those unit-related messages are not covered by the filter.<br></blockquote><div><br></div><div>They're not generated *<i>by</i>* a process within logrotate.service, and journald does not allow a (fake) <font face="monospace">_SYSTEMD_UNIT</font> to be set – not even if the sender is pid1. The same also applies to messages logged by systemd-coredump.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Is there a better way to get such related messages when filtering?<br></blockquote><div><br></div><div>Use `<font face="monospace">journalctl -u logrotate</font>`, which combines several filters to get all messages related to the specified unit.</div><div><br></div><div>The actual filtering used by <font face="monospace">-u </font>(as seen with <font face="monospace">SYSTEMD_LOG_LEVEL=debug</font>) is a union of four filters – the equivalent command would be:</div><div><br></div><div><font face="monospace">journalctl _SYSTEMD_UNIT=logrotate.service \</font></div><div><font face="monospace">  + MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1 _UID=0 COREDUMP_UNIT=logrotate.service \<br></font></div><div><font face="monospace">  + _PID=1 UNIT=logrotate.service \<br></font></div><div><font face="monospace">  + _UID=0 OBJECT_SYSTEMD_UNIT=logrotate.service</font></div></div><div><br></div><div>The fourth is a generic filter (any process running as root can specify <font face="monospace">OBJECT_SYSTEMD_UNIT=</font>) which I think came a bit later than the special-case pid1 and coredump ones.</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Mantas Mikulėnas</div></div></div>