기본 시스템 사용법을 배우려고하는데 사용자 서비스 단위와 혼동되는 문제가 발생했습니다.
systemctl start some.service를 사용 하여 일반 서비스를 실행할 때 sudo journalctl –unit some.service를 실행 하여이 서비스에 대한 전체 로그 (내가 알기로 stdout / stderr에 인쇄 한 것을 포함하여)를 찾을 수 있습니다 .
servicefile chatty.service 예제를 고려하십시오 .
[Service]
ExecStart=/usr/bin/echo "test from chatty.service"
이 서비스 파일을 ~ / .config / systemd / user / chatty.service에 배치 하고 systemctl –user start chatty.service로 실행하면 일반 journalctl 이나 journalctl을 사용 하여 journalctl 에서 stdout으로 전송 된 출력을 찾을 수 없습니다. -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
사용자 서비스 단위가 어떻게 든 잘 통합되지 않은 것 같습니다. 이것이 예상입니까, 뭔가 빠졌습니까, 아니면 버그입니까?
systemd 208 (기본 설치)과 함께 openSUSE 13.1 x86-64를 실행하고 있습니다.
답변
--user-unit
옵션을 사용 하고 귀하의 경우에는 …
journalctl --user-unit chatty
답변
네크로 포스팅 (Necroposting)이지만 오늘 같은 문제에 직면 해 해결했습니다. journalctl --user-unit chatty
루트에서 실행하기 때문에 대부분 효과 가 없었습니다. 그러나 당은 man journalctl
, --user-unit
필터에 의해뿐만 아니라 항목 로그 _SYSTEMD_USER_UNIT=
뿐만 아니라에 의해을 _UID=
, 어떤이없는 chatty
어떤 항목이 발견되지 않도록 서비스는 루트의 UID와 함께.
당신은 또한 journalctl --user-unit chatty
당신의 평범한 사용자로부터 실행 을 시도했지만 아마도 얻었을 것 No journal files were found
입니다. 이것은 (하기 때문에 발생하는 모든 사용자가 자신의 개인 사용자 별 저널에 대한 액세스 권한이 부여됩니다 에서 man journalctl
여전히 기본적으로 지속되지 않습니다 내 데비안 9 journalctl에 2018 여기에 혼동 될 수있다 () 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에 있습니다.
답변
systemd v230까지는 덜 직관적 인 --user-unit
플래그를 사용 하여 사용자 장치의 로그를보아야했습니다.
journalctl --user-unit chatty
systemd v230부터는 예상대로 --user
및 --unit
플래그를 결합 할 수 있습니다 .
journalctl --user --unit chatty
이 --user --unit
구문은 Ubuntu 17.10부터 지원됩니다.