Как разрешить пользователю использовать journalctl для просмотра пользовательских журналов системных служб?

15

Я использую сервисы уровня пользователя в Ubuntu 16.04 LTS. Например, мой test.service расположен в ~ / .config / systemd / user / test.service

Я смог запустить службу, выполнив

systemctl --user start test.target

Однако, когда я пытаюсь прочитать его журнал с помощью journalctl, я получил это сообщение об ошибке:

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.

Как я могу использовать journalctl для конкретного юнита пользователя?

ChromeHearts
источник

Ответы:

10

На старых версиях systemd вам придется использовать journalctl --user --user-unit=SERVICENAME(на новых версиях journalctl --user -u SERVICENAMEбудет работать нормально).

Однако это работает только в том случае, если Storageдиректива [Journal]раздела /etc/systemd/journald.confустановлена ​​в persistent(вместо autoили volatile). Перезагрузитесь после редактирования файла конфигурации, и пользователь сможет увидеть журнал.

Дополнительная информация: https://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html

D Schlachter
источник
1
Добавление пользователя в группу systemd-journal было тем ответом, который мне был нужен (по этой ссылке в списке рассылки).
Трэвис Уэлл
Это работало для меня в Ubuntu 17.10, где один пользователь необъяснимым образом не мог просматривать свои журналы, а другой мог.
ЭльБрадфорд
2
Добавление пользователя в группу systemd-journal было бы обходным путем, но, поскольку мой сервис был пользовательским сервисом, я не думаю, что журналы создавались в первую очередь, поэтому позволить моему пользователю просматривать все остальные журналы не будет все равно помогло.
ЭльБрадфорд,