Tails 7.10 调整了一个每天都会遇到、却很容易被忽视的环节:系统关机。新版采用 GNOME 的标准关机流程,关机速度可能比过去稍慢,但系统会更明确地提醒用户关闭应用程序、保存仍在编辑的文档,从而降低数据丢失风险。
关机不再只追求“尽快断电”
旧式快速关机的优点很直接:操作完成后,系统迅速退出。问题在于,桌面应用可能仍有未写入磁盘的数据,例如尚未保存的文档、正在导出的文件,或者仍在处理写操作的持久化存储。
Tails 7.10 使用 GNOME 标准关机流程后,桌面会在关机确认阶段检查应用程序的状态。如果某个应用需要用户保存文档或完成关闭操作,确认对话框会给出提示。这项变化增加了一点等待时间,却把潜在的数据损失从“关机后才发现”提前到了“关机前可以处理”。
这里的边界也很清楚:提示并不意味着系统会无限等待。即使用户没有确认,也没有保存打开的文档,Tails 仍会在 60 秒后关机。因此,这是一段处理窗口,而不是自动保存机制。
为什么 60 秒超时很重要
对普通桌面系统来说,关机对话框停留较久通常只是体验问题;对强调隐私和可控退出的 Tails 来说,关机流程还必须保证系统最终能够结束运行。
60 秒超时在两个目标之间做了明确取舍:
- 给应用程序和用户留出保存、关闭以及完成写入的时间。
- 避免某个无响应的应用无限阻止关机。
- 保持关机行为具有确定的最终结果。
这也意味着用户不能把倒计时当成备份。未保存的编辑内容仍可能丢失,尚未完成的复制任务也可能被中断。看到阻止关机的应用时,应直接返回应用处理数据,而不是等待超时。
可以这样检查谁在阻止关机
下面的命令适用于采用 systemd 的 Linux 桌面环境,可用于理解“关机抑制器”如何工作。它是通用排查方法,不代表 Tails 7.10 新增了这些命令或接口。
列出当前可能延迟关机、休眠或睡眠的进程:
systemd-inhibit --list
为了安全地观察效果,可以在终端中创建一个临时关机抑制器。以下命令只保持 30 秒,不会修改系统配置:
systemd-inhibit \
--what=shutdown \
--mode=delay \
--why="Testing shutdown delay handling" \
sleep 30
保持该命令运行,再打开另一个终端执行:
systemd-inhibit --list
输出中应能看到 sleep 对关机施加的临时延迟。30 秒后进程自动退出,对应条目也会消失。不同桌面应用采用的抑制模式可能不同,因此实际显示内容以系统输出为准。
如果刚刚向存储设备写入了重要文件,也可以在正常关机前执行:
sync
sync 会要求内核把已缓存的文件系统写入提交到底层存储,但它不能保存应用中尚未写入文件的编辑内容。文档编辑器里的未保存文本仍需在应用内手动保存。
升级后的使用建议
采用 Tails 7.10 后,可以把关机前的操作压缩成一份简单清单:
- 保存正在编辑的文档,并确认目标位置是否正确。
- 等待文件复制、导出和下载任务完成。
- 通过桌面菜单启动正常关机流程。
- 如果 GNOME 提示某个应用阻止关机,返回该应用处理未保存内容。
- 只有在应用无响应或数据不再需要时,才让 60 秒倒计时自然结束。
新的流程牺牲了一点关机速度,换来的是更清楚的应用状态和一次补救机会。它不能替代备份,也不会自动挽救未保存内容,但能显著减少因为匆忙关机而造成的意外数据丢失。