有大量关于禁用无人值守升级的线程。我知道他们。
我的不满是用户体验还有unattended-upgrade
很多不足之处。任务栏中的项目(xubuntu 的右上角)将是放置“无人值守升级正在运行。完成 47%。按此处停止它一次”小部件的地方。我猜那是不存在的。
我有一台不常使用的旧的、低功耗的笔记本电脑,当我启动它时,由于无人值守升级,大多数情况下它会在启动后长达 15 分钟内缓慢爬行。
所以偶尔我想停下来。ps -ef | grep -v grep | grep unattended-upgrade
显示一个似乎忽略终止信号的 PID,所以这不是要走的路。apt
仅仅杀死和听起来也很危险dpkg
。
所以:有没有办法安全地停止一个已经开始的unattended-upgrade
?或者是我唯一的选择:
- 禁用无人值守升级并完成它。忍受可能永远不会更新的系统的不安全性。
- 启动后最多等待 15 分钟以试用:
apt-get install new-shiny-tool
?
是的,是的,你可以。实际上,您可以使其行为完全符合您的要求,但请详细说明:
因为这部分让我有点担心,因为除了 PID 1 (init) 之外的任何进程都无法忽略以 root 身份触发的 SIGKILL,除非正在处理一个系统调用,如果在句子中间被杀死会导致内核代码损坏。这种情况并没有完全阻塞 SIGKILL,而是将它变成一个异步信号,在系统调用被唤醒并完成的那一刻传递。
停止
至于
unattended-upgrade
,您可以配置何时启动它,就停止它而言,您应该有一个服务:sudo service unattended-upgrades status
和
sudo service unattended-upgrades stop sudo service unattended-upgrades status
将杀死它,而不必求助于
ps
pid 查找。延迟
但是,由于您提到启动延迟
unattended-upgrades
是另一个问题,您可能还希望阻止此服务在启动时直接运行。在这种情况下,您可以通过为它创建一个计时器来延迟它。为了创建一个计时器,用于在同一目录中unattended-upgrades.service
创建一个unattended-upgrades.timer
具有以下配置的 5 分钟启动延迟:接下来,禁用该服务并启用计时器来控制它。
即使你有定时器运行,你仍然可以杀死无人值守的升级服务,但它会在后台通知你定时器。
小部件