Ubuntu禁用不必要的自启软件需区分桌面应用级(通过~/.config/autostart/或/etc/xdg/autostart/中的.desktop文件触发)和系统服务级(由systemd管理的.service单元),前者用gnome-session-properties或重命名.desktop文件禁用,后者须用sudo systemctl disable <service-name>,混用易误操作或无效。
Ubuntu 关闭不必要的自启软件,关键在于分清两类东西:桌面应用级自启动项(比如微信、网易云音乐、TeamViewer)和系统服务级自启动项(比如 cups.service、bluetooth.service)。它们的管理方式完全不同,混用命令或工具容易白忙活,甚至误关关键服务。
这类程序不是 systemd 服务,而是通过用户目录下的 ~/.config/autostart/ 或系统级 /etc/xdg/autostart/ 中的 .desktop 文件触发的。图形界面里看到的“Startup Applications”列表基本都来自这里。
ls ~/.config/autostart/,列出你个人启用的自启项;ls /etc/xdg/autostart/ 则是系统级默认项(通常只读,不建议直接删).desktop 文件重命名,比如 teamviewer.desktop → teamviewer.desktop.disabled,下次登录就不会启动gnome-session-properties,取消勾选即可 —— 它背后就是修改或软链接这些 .desktop 文件,不会误删~/.config/autostart/,关掉后下次打开它可能又自己加回来这类服务由 systemd 管理,gnome-session-properties 根本看不到它们。想关掉 bluetooth、avahi-daemon 或 whoopsie 这类后台服务,必须用 systemctl。
systemctl list-unit-files --type=service --state=enabled,只看已启用的服务sudo systemctl disable <service-name>,例如 sudo systemctl disable bluetooth.service
stop:它只临时停止,重启后仍会拉起;disable 才真正切断开机加载network-manager.service、dbus.service 是桌面正常运行依赖,禁用会导致网络或通知异常systemctl cat <service-name> 看描述,或 man <service-name>(如果提供手册页)这两个工具本质是读写 DConf 配置,路径在 org.gnome.desktop.startup-applications。但它们只影响 GNOME 桌面下通过标准协议注册的启动项,对以下情况无效:
/etc/init.d/ 的 SysV 脚本(Ubuntu 20.04+ 基本不用了,但老软件可能残留)snap services 或 flatpak override --show
dconf-editor 修改后没生效?试试注销再登录,DConf 缓存有时延迟刷新这不是“自启软件”,但确实拖慢 GRUB 菜单、占用磁盘空间。清理前务必确认当前正在用的内核:
uname -r
dpkg --get-selections | grep 'linux-image-.*-generic' | grep -v deinstall
6.8.0-52-generic,可删 6.5.0-xx,别碰 6.8.0-51
sudo update-grub,否则 GRUB 不会更新菜单linux-headers 和 linux-modules 要和 linux-image 版本严格匹配,一起删,否则编译驱动可能失败真正麻烦的从来不是“怎么关”,而是“该不该关”——很多自启项看似无用,实则支撑着通知、剪贴板同步、输入法切换等隐形功能。动手前花 30 秒查清它干啥,比事后修系统快得多。