질문:
시스템 사용자 단위 Journalctl 출력에 "저널 파일을 찾을 수 없습니다."라고 표시됩니다. 이는 테스트 중인 한 명의 sss 사용자에게만 발생하며 모든 로컬 사용자는 제대로 작동하는 것 같습니다. 편집: sss는 문제가 아닌 것 같습니다. 바로 이 사용자가 문제라는 것입니다. 정확한 명령 및 출력:
$journalctl --user -u myservice
No journal files were found.
시스템 환경
- RHEL 8.4
- 시스템 239(239-45.el8_4.3)
- 커널: 4.18.0-305.19.1.el8_4.x86_64
문제 해결:
저는 다음 게시물을 읽고 각 게시물의 문제를 해결하려고 노력했습니다.
- https://stackoverflow.com/questions/30783134/systemd-user-journals-not-being-created
- https://bbs.archlinux.org/viewtopic.php?id=193518
- Journalctl이 "--항목 없음--"이라고 말하는 이유는 무엇입니까?
- Journalctl --user는 "저널 파일을 찾을 수 없습니다"를 제공합니다.
나는 다음을 시도했습니다 :
- 재시작.
- 호스트 운영 체제를 다시 배포합니다.
- 테스트를 위해 로컬 사용자를 생성해 보세요.
- 테스트를 계속하기 전에 먼저 SSH 또는 터미널을 사용하여 직접 사용하고 있던 새로 생성된 로컬 사용자 계정에 로그인했는지 확인했습니다. 또한 sshing을 테스트하여 sss 사용자 계정을 사용할 수 있었습니다.
- Journalctl 서비스 다시 시작(
systmectl restart systemd-journald.service
) - /etc/systemd/journald.conf가 있는지 확인하세요
Storage=persistent
. 그러나 자동 및 휘발성도 시도했지만 변경되지 않았습니다. export XDG_RUNTIME_DIR=/run/user/$(id -u)
로컬 사용자 및 관련 사용자의 ~/.bashrc에 추가합니다 . 그런 다음 파일을 가져옵니다.- 확인 지연이 활성화되었습니다.
- 이 문제는 상자의 특정 사용자 한 명에게만 발생하는 것으로 나타났습니다. 새 사용자를 생성하면 이 문제가 발생하지 않습니다.
- 해당 사용자 계정의 uid가 gid/group과 다릅니다. 그러나 새로 생성된 계정이 gid/group과 다른 uid를 갖도록 조정하고, 새 uid에 대해 ~/.bashrc를 조정하고, 재부팅하면 계정에 올바른 Journalctl 출력이 표시되는지 테스트했습니다.
- 문제의 사용자 계정은 sss 사용자인 것 같습니다.
- 사용자의 d-bus 채널이 실행 중인 것을 확인했습니다
ps
. 사용자가 실행 중인 것으로 보입니다./usr/lib/systemd/systemd --user
systmectl --user
관련 사용자로서 다른 명령을 실행할 수 있습니다 . 상태를 확인하고 사용자 서비스를 시작, 중지, 다시 시작할 수 있습니다.- 을 실행하면
journalctl --user
출력은 다음과 같습니다.$ journalctl --user No journal files were found. -- No entries --
- 을 실행하면
journalctl --user --verify
출력은 다음과 같습니다.$ journalctl --user --verify No journal files were found.
- 나는 sss 사용자를 구축한 다른 컴퓨터에서 위의 모든 작업을 수행했는데 문제는 사용자 계정에 있었습니다.
- Journalctl 출력을 발견했습니다! 그러나 이는 /var/log/messages(rhel 시스템에서 syslog에 대한 Journalctl 출력의 기본 위치)에 있습니다. 왜 거기에는 표시되지만 --user 영역에는 표시되지 않는지 궁금하십니까?
systemctl status user.slice --no-pager
각 uid에 대한 올바른 사용자 슬라이스와 올바른 서비스를 확인 하고 보면systmectl --user status myservice
올바른 슬라이스도 표시됩니다. 그런데 확인해 보면 관련 사용자 목록이ls /var/log/journal/<number>
보이지 않습니다 .user-<UID>@UUID.journal
이 문제는 sss를 사용하여 테스트 중인 사용자에게만 발생하는 것 같습니다. 이 시스템에서 sss를 관리하지 않기 때문에 이 사용자를 삭제하거나 다시 생성할 수 없습니다.
이 특정 sss 사용자 journalctl --user
출력은 나타나지 않지만 로컬 사용자는 나타나는 이유는 무엇입니까? 내가 여기서 무엇을 놓치고 있는 걸까요? 이 문제를 해결하는 방법을 모르시나요? 제안 사항이 있으신가요?
편집하다:글쎄요, sss와는 아무 관련이 없는 것 같습니다. 나는 자체 AD 서버, 통합 Kerberos 및 SSSd를 배포하고 사용자를 설정했으며 Journalctl이 제대로 작동했습니다.
현재 시점에서는 왜 이 사용자에게 Journalctl이 작동하지 않는지 알 수 없습니다. 문제 해결에 대한 조언이 도움이 될 것입니다!
편집 2:--user 서비스에 대한 Journalctl 출력이 표시되지만 /var/log/messages
이는 루트에서만 액세스할 수 있음을 발견했습니다.
답변1
문제를 발견했습니다! 해당 사용자의 UID/GID는 < 1000입니다. UID/GID를 "1111"로 조정하고 로그아웃했다가 다시 로그인하자 Journalctl이 즉시 작동하기 시작했습니다!
읽고 나서이 게시물저널ctl이 시스템 사용자용이라고 생각했던 systemd-user 유닛과의 작동을 허용하지 않는 작업을 수행하고 있을 수도 있다는 것을 깨달았습니다.