Jak zezwolić użytkownikowi na korzystanie z dziennika, aby wyświetlić dzienniki usług systemowych specyficzne dla użytkownika?

15

Korzystam z usług na poziomie użytkownika w Ubuntu 16.04 LTS. Na przykład mam swoją stronę test.service pod adresem ~ / .config / systemd / user / test.service

Dzięki temu mogłem uruchomić usługę

systemctl --user start test.target

Jednak gdy próbuję odczytać jego dziennik za pomocą dziennikactl, otrzymałem następujący komunikat o błędzie:

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.

Jak mogę użyć JournalCCTL dla konkretnej jednostki użytkownika?

ChromeHearts
źródło

Odpowiedzi:

10

W starszych wersjach systemowych będziesz musiał użyć journalctl --user --user-unit=SERVICENAME(w nowszych wersjach journalctl --user -u SERVICENAMEbędzie działać dobrze).

Działa to jednak tylko wtedy, gdy Storagedyrektywa [Journal]sekcji /etc/systemd/journald.confjest ustawiona na persistent(zamiast autolub volatile). Uruchom ponownie po edycji pliku konfiguracyjnego, a użytkownik będzie mógł zobaczyć dziennik.

Więcej informacji: https://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html

D Schlachter
źródło
1
Dodanie użytkownika do grupy systemd-journal było odpowiedzią, której potrzebowałem (z linku do tej listy mailingowej).
Travis Well,
To działało dla mnie na Ubuntu 17.10, gdzie jeden użytkownik w niewytłumaczalny sposób nie mógł przeglądać swoich dzienników, podczas gdy inny mógł.
elBradford
2
Dodanie użytkownika do grupy systemd-journal byłoby obejściem, ale ponieważ moja usługa była usługą użytkownika, nie sądzę, że dzienniki zostały wygenerowane, więc umożliwienie mojemu użytkownikowi przeglądania wszystkich innych dzienników i tak pomogło.
elBradford