Я запускаю службы уровня пользователя в 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 для конкретного устройства пользователя?
В старых версиях systemd вам нужно будет использовать journalctl --user --user-unit = SERVICENAME
(в более новых версиях journalctl --user - u SERVICENAME
будет работать нормально).
Однако это работает, только если директива Storage
раздела [Journal]
в / etc / systemd / journald .conf
установлен на постоянный
(вместо auto
или volatile
). После редактирования файла конфигурации перезагрузитесь, и пользователь сможет просмотреть журнал.
Дополнительная информация: https://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html
Мне не удалось заставить его работать с --user
и другими подобными параметрами. Однако я могу видеть данные, когда использую journalctl
отдельно. Тем не менее, он включает в себя все журналы. Я могу найти конкретное приложение, которое меня интересует, и посмотреть на результат. Чтобы найти последнюю, я сначала иду в конец файла, а затем ищу назад:
Нажмите G, чтобы перейти к концу (это заглавная G
)
Нажмите ? и введите имя вашего приложения
Это не так практично, но на устройстве, на котором я работаю (Jetson), это был почти единственный способ заставить его работать.