Wie kann ein Benutzer journalctl verwenden, um benutzerspezifische systemd-Dienstprotokolle anzuzeigen?

14

Ich verwende Dienste auf Benutzerebene in Ubuntu 16.04 LTS. Zum Beispiel befindet sich mein test.service unter ~ / .config / systemd / user / test.service

Ich konnte den Dienst ausführen, indem ich

systemctl --user start test.target

Wenn ich jedoch versuche, das Protokoll mit journalctl zu lesen, wird folgende Fehlermeldung angezeigt:

journalctl --user -u test.service
Hint: You are currently not seeing messages from other users and the system.
  Users in the 'systemd-journal' group can see all messages. Pass -q to
  turn off this notice.
No journal files were opened due to insufficient permissions.

Wie kann ich journalctl für die spezifische Einheit des Benutzers verwenden?

Verchromte Herzen
quelle

Antworten:

10

Auf älteren systemd Versionen müssen Sie verwenden journalctl --user --user-unit=SERVICENAME(auf neueren Versionen journalctl --user -u SERVICENAMEwird gut funktionieren).

Dies funktioniert jedoch nur, wenn die StorageDirektive des [Journal]Abschnitts von /etc/systemd/journald.confauf persistent(anstelle von autooder volatile) gesetzt ist. Starten Sie nach dem Bearbeiten der Konfigurationsdatei neu und der Benutzer kann das Journal sehen.

Weitere Informationen: https://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html

D Schlachter
quelle
1
Das Hinzufügen des Benutzers zur systemd-journal-Gruppe war die Antwort, die ich brauchte (von diesem Mailinglisten-Link).
Travis Well
Dies funktionierte für mich unter Ubuntu 17.10, wo ein Benutzer aus unerklärlichen Gründen seine Protokolle nicht anzeigen konnte, während ein anderer dies konnte.
elBradford
1
Das Hinzufügen eines Benutzers zur systemd-journal-Gruppe wäre eine Problemumgehung. Da es sich bei meinem Dienst jedoch um einen Benutzerdienst handelt, wurden die Protokolle meines Erachtens nicht an erster Stelle generiert, sodass mein Benutzer nicht alle anderen Protokolle anzeigen kann habe trotzdem geholfen.
elBradford