Я пытаюсь изучить основы использования systemd и столкнулся с запутанной проблемой с пользовательскими сервисными блоками.
При запуске обычных служб с помощью systemctl запустите some.service. Я могу найти полный журнал для этого сервиса (включая то, что он напечатал в stdout / stderr, насколько я понимаю), запустив sudo journalctl --unit some.service .
Рассмотрим пример сервисного файла chatty.service :
[Service]
ExecStart=/usr/bin/echo "test from chatty.service"
Когда я помещаю этот служебный файл в ~ / .config / systemd / user / chatty.service и запускаю его с помощью systemctl --user start chatty.service, я не могу найти его вывод, отправленный на стандартный вывод в journalctl, ни с обычным journalctl, ни с journalctl - -user . Я получаю только следующий вывод в обоих:
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.
И journalctl --unit chatty.service вообще ничего не возвращает (с или без --user не имеет значения).
Хотя, если я переместу тот же файл службы в / etc / systemd / system и запусту его с помощью sudo systemd start chatty.service, я получу следующий вывод при запуске sudo journalctl --unit chatty.service :
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service...
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service.
Jan 15 19:28:08 qbd-x230-suse.site echo[27098]: test from chatty.service
Кажется, что пользовательский сервисный модуль не так хорошо интегрирован, это ожидаемо, я что-то упустил или это ошибка?
Я использую openSUSE 13.1 x86-64, с systemd 208 (установка по умолчанию).
journalctl --user --user-unit chatty
чтобы получать эти сообщения запуска / остановки от systemd, но не то, что выводит эхо-процесс, по крайней мере, в моем случае. Вы можете получить отраженное сообщениеjournalctl --user
или использовать другой фильтр.Ответы:
Используйте
--user-unit
опцию, и в вашем случае ...источник
journalctl --user
я получаю,No journal files were found.
Иjournalctl --user-unit chatty
это не работает для меня.Некропостинг, но я столкнулся и решил ту же проблему сегодня. Скорее всего,
journalctl --user-unit chatty
у вас не получилось, потому что вы запускаете его из-под root. Тем не менее, perman journalctl
,--user-unit
фильтрует записи журнала не только по_SYSTEMD_USER_UNIT=
, но и по_UID=
, и нетchatty
службы с uid root, поэтому записи не найдены.Вполне вероятно, что вы тоже пытались запустить
journalctl --user-unit chatty
от своего обычного пользователя, но получилиNo journal files were found
. Это происходит потому, что (и всем пользователям предоставлен доступ к их личным журналам для каждого пользователя, из-за чего этоman journalctl
может сбивать с толку) в 2018 году мой журнал Debian 9 по-прежнему не является постоянным по умолчанию (Storage=auto
в/etc/systemd/journald.conf
и/var/log/journal/
не существует), а в Постоянный режимjournald
не поддерживает разделение журналов, поэтому все журналы заканчиваются в одном месте,/run/log/journal
несмотря на то, что разделение включено по умолчанию - см.SplitMode
вman journald.conf
. Включение постоянства исправляет это.TL; DR: включить постоянство, поставив
Storage=persistent
к/etc/systemd/journald.conf
и перегрузочные journald сsudo systemctl restart systemd-journald
.Кроме того, поиск с
sudo journalctl _SYSTEMD_USER_UNIT=chatty.service
Некоторые подробности можно найти по адресу https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html.
источник
No journal files were opened due to insufficient permissions.
запутывающую «подсказку» о настройке разрешений, но мне не нужно было устанавливать разрешения, потому что я пытаюсь получить доступ к пользовательским журналам, а не системным журналам. Ваше исправление сработало. Большое спасибо.До появления systemd v230 вам приходилось использовать менее интуитивно понятный
--user-unit
флаг для просмотра журналов вашего пользовательского устройства:Начиная с systemd v230, теперь вы можете комбинировать
--user
и--unit
флаги так, как вы ожидаете:--user --unit
Синтаксис поддерживается начиная с Ubuntu 17.10.источник