journalctl在 CentOS 7 系统下执行只会打印上次启动后生成的消息。
命令
# journalctl --boot=-1
Run Code Online (Sandbox Code Playgroud)
印刷
Failed to look up boot -1: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)
并以状态 1 退出。
将它与当前的 Fedora 系统进行比较,我注意到 CentOS 7 没有/var/log/journal(journalctl也没有提供--list-boots)。
因此,我的问题是如何显示在上次启动日期之前写入的日志消息。
或者,也许这个功能必须在 CentOS 7 上启用?
(journalctl手册页将“systemd 208”列为版本号。)
发出关闭命令后,有时会收到如下状态消息:
Run Code Online (Sandbox Code Playgroud)A stop job is running for Session 1 of user xy
然后系统挂起一段时间,或永远取决于 ???
那么究竟什么是“停工”呢?
另外,为什么它有时会非常准确地估计所需的时间,而有时它可以永远运行?
几乎每次当我关闭或重新启动系统时,我都会在系统实际关闭之前收到以下消息:
A stop job is running for Session 1 of user xy
Run Code Online (Sandbox Code Playgroud)
它等待 1:30 分钟,然后继续关闭。我在 Gnome 3 中使用 Debian 拉伸。此消息未出现在系统日志中。
有任何想法吗?
通常当我关闭我的机器时(使用shutdown命令)它工作得非常快,但每隔一段时间,通常是在一个无聊的更新之后或者当我破坏某些服务的配置文件时,我最终会得到
正在为 Some Broken Service 运行停止作业(20 分钟 58 秒/无限制)
在我的屏幕上游行,直到我屈服并按住电源按钮直到机器关闭。有时有多个作业,其中一个实际挂起,而其他作业则在等待挂起的作业,每个作业 1:30 的超时加起来长达 20-30 分钟。有时它会在经过大量等待后最终关闭,有时则不会(或者我没有耐心)。
当我发现这会强制终止挂起的任何内容并允许它继续(半)正常关闭时,我能做些什么吗?主要是,我想确保btrfs总是有机会重新挂载-ro 和刷新到磁盘,因为我正在运行(半不稳定)raid6。我听说 Ctrl+Alt+Delete 应该有帮助,但它似乎所做的只是^[[3~在我的屏幕底部打印——我需要做些什么来启用它吗?
需要明确的是,我并没有尝试全局关闭或禁用此超时——我的系统通常能够在不运行的情况下关闭——我只是想要一种在发现问题时以交互方式绕过它的方法。此外,对为什么会发生这种情况或如何解决它不感兴趣——诊断必须等到机器完成关闭并重新启动。
我最近一次遇到这个问题是编写了一个 udev 规则,导致内核崩溃,systemd-udev据我所知导致永久挂起。出于某种原因,这意味着 docker 挂了 30 分钟,直到关闭本身超时。
当我有一个 systemd.mount单元指向 NFS 共享时,它似乎也经常发生,当 VPN 已死时,只能通过 VPN 访问。停止安装单元将永远挂起,由于某种原因导致我的用户会话和其他 6-8 个单元每个(按顺序)挂起 1:30,直到它们全部超时。
也曾经发生过一段时间我由于某种莫名其妙的原因关闭,然后通过内核升级修复(5.7.something修复它,如果我没记错的话)。