Ubuntu 16随机死机强制关机后,能否像Windows一样恢复之前session?
当然能!Ubuntu 16.04(以及多数现代Linux桌面环境)完全支持意外关机后恢复之前的会话,不过不同桌面环境的操作方式有点不一样,我给你拆解一下具体怎么弄:
针对不同桌面环境的恢复方法
GNOME桌面(Ubuntu 16默认)
GNOME本身就内置了会话恢复功能,只是默认可能没完全启用,按下面步骤配置即可:
- 先安装
dconf-editor(如果没装的话),打开终端输入:sudo apt install dconf-editor - 启动
dconf-editor,导航到org -> gnome -> gnome-session -> auto-save-session,把这个选项切换为true - 确认
org -> gnome -> gnome-session -> session-name的值是gnome(默认就是这个,不用改)
配置完成后,下次意外关机再开机时,登录界面会出现“恢复会话”的选项,选它就能回到之前打开的所有窗口和应用了。
KDE Plasma桌面
如果你的Ubuntu 16装的是KDE桌面,那会话恢复的设置更直观:
- 打开系统设置,找到「工作区行为」→「启动和关机」
- 在「会话管理」标签页里,勾选「当登录时:恢复上一次会话」
- 同时确保「在意外关机后自动恢复会话」这个选项也处于开启状态
通用工具辅助恢复
要是桌面环境的原生功能满足不了需求,还可以用第三方工具来补:
- session-manager:这是个轻量级的会话管理工具,能手动保存和恢复当前会话。安装命令:
用的时候从应用菜单打开它,点击保存就能记录当前所有打开的应用,下次开机后点恢复就能回到之前的状态。sudo apt install session-manager - wmctrl:这是个命令行工具,能控制窗口管理器。你可以写个简单的脚本定时保存会话,开机自动恢复:
保存会话的脚本(可以加到定时任务里,比如每10分钟执行一次):
恢复会话的脚本(加到开机启动项里):wmctrl -l | awk '{print $NF}' > ~/.saved_sessionwhile read app; do nohup $app & done < ~/.saved_session
一些注意事项
- 不是所有应用都支持会话恢复:比如部分终端里的命令行程序,或者一些没做会话状态保存的小众应用,可能没法自动恢复到之前的状态,得手动重新打开。
- Ubuntu 16.04已经停止官方支持了:虽然这些功能还能用,但长期用老版本会有安全风险,要是条件允许,建议升级到更近期的LTS版本,会话恢复功能会更完善稳定。
内容的提问来源于stack exchange,提问作者PlopMon




