我使用的是 Debian 9。关闭计算机时,很多次(我认为超过 50%)我都会收到以下消息:
用户 rodrigo 的会话 3 正在运行停止作业(X 秒/1 分钟 30 秒)
X 递增,直到时间结束,然后计算机最终关闭。有时,有两个不同的“停止作业”,其消息和计时器在同一行上交替出现。谷歌搜索(“debian 9 正在运行停止作业”),我在不同的发行版中发现了许多类似的错误(仅在 bugs.debian.org 中找到了 47 个结果),其中一些已经存在 4 年多了。
我的问题是:这些错误大多数不是来自同一个包吗?还没修好吗? (大多数解决方案只是解决方法。)源代码不是由一个人或一个团队开发,并分别编译到不同的 Linux 发行版吗?如果错误已经在源代码中修复了(我认为现在应该如此),那么为什么四年后这个错误仍然出现?是不是太长了?或者也许它已在其他发行版中修复,但在 Debian 上尚未修复?
答案1
补丁不会“自动”传播。既不适用于 Linux 内核,也不适用于任何其他操作系统组件(如库、程序等)。
发生这种情况的原因有很多,主要归结为以下几点:
几乎所有发行版在创建二进制包之前都会将自己的补丁应用于“官方源”。这导致应用可能的官方、非官方和分支外安全和错误修复补丁的工作量相当大。其中一些补丁不仅仅是修复:为了使软件包符合分发策略(例如添加强制
--help
或--long-help
类似内容),可能需要它们。这些“官方补丁”发布的时间可能会有很大差异,具体取决于人力资源、补丁审查政策等多种原因。有时有些发行版不会应用某些补丁。
像 Ubuntu 这样的发行版有“支持”策略,一旦发行版“生命周期结束”,这些策略就会减慢甚至阻止发行版的任何更新。另一方面,滚动发行版往往会跟上“官方”补丁和新版本的步伐。
对于有关补丁、错误修复和安全路径的一般更新,我想向您推荐类似的网站Linux 每周新闻和菲罗尼克斯。
话虽如此,您报告的错误清楚地表明,在关闭系统时您的某些进程仍在运行。我建议您在关闭之前运行一些测试,只是为了知道哪个进程挂起。
在我看来,ps
它是你的朋友,你可以直接从 vty(虚拟控制台 tty)运行它。
- 按Ctrl+ Alt+ F1(或F2或F3)获取 vty。这是非 GUI 登录。
- 使用您的用户名和密码登录。
- 跑步
PS_FORMAT='ruser,pid,ppid,s,%cpu,rss,cmd' ps x
(我个人最喜欢的)。它将向您显示所有正在运行的进程“你" 以及一些详细信息。替换ps x
为ps ax
即可查看全部流程。 - 记下这些进程:
PID
是进程 ID,PPID
是父进程 ID,是生成该进程的进程的 ID,CMD
是正在运行的命令。 - 在关闭之前尝试关闭/杀死它们。