对于特定用户,journalctl --user -u myservice“未找到日志文件”

对于特定用户,journalctl --user -u myservice“未找到日志文件”

问题:

systemd 用户单位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

故障排除:

我已经阅读了这些帖子并尝试在每个帖子中找到故障排除:

我已经尝试过以下方法:

  • 重新启动。
  • 重新部署主机操作系统。
  • 尝试创建本地用户进行测试。
  • 在继续测试之前,请确保首先直接使用 SSH 或终端登录到我正在使用的所有新创建的本地用户帐户。还测试了我能够使用的 sss 用户帐户的 sshing。
  • 重新启动journalctl服务(systmectl restart systemd-journald.service
  • 确保 /etc/systemd/journald.conf Storage=persistent。但也尝试了 auto 和 volatile,没有任何变化。
  • 添加export XDG_RUNTIME_DIR=/run/user/$(id -u)到本地用户和相关用户的 ~/.bashrc 中。然后获取该文件。
  • 确认延迟已启用。
  • 注意到这个问题只发生在盒子上的一个特定用户上。创建了新用户,就不会出现这个问题了。
  • 相关用户帐户的 uid 与 gid/组不同。不过,我测试了调整新创建的帐户,使其具有与其 gid/groups 不同的 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 系统中journalctl 输出到syslog 的默认位置)。想知道为什么它显示在那里,但不显示 --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但这只能由 root 访问。

答案1

我发现问题了!相关用户的 UID/GID < 1000。我将 UID/GID 调整为“1111”,注销并重新登录,journalctl 立即开始工作!

看完之后这个帖子它意识到也许journalctl正在做一些不允许它与它认为用于系统用户的systemd-用户单元一起工作的事情。

相关内容