您可能希望通过多种方式来解决这个问题,我已尝试尽可能完整,并希望其中一种可以解决您的问题。
在至少 16.04 的系统上,是的,如果您想登录,则需要 Upstart。
但是,如果您完全确定根本不需要 upstart,只需卸载它:
sudo apt-get purge upstart
Run Code Online (Sandbox Code Playgroud)
这将导致它也从菜单中自动删除
如果您需要新贵(可能取决于它)并希望它仍然存在但不启动您的系统,您可以通过编辑您的 grub 配置文件来摆脱条目手册。有两种方法可以解决(第一种是两者中更危险的一种)。
您可以编辑/boot/grub/grub.cfgTEMPORARY 删除(使用 grub-mkconfig 重新生成将撤消此更改)。删除带有名称的 menu_entry 块Ubuntu ....... (upstart) { .. many lines .. }。1
由于/etc/grub.d/10_linux模板文件中有一个变量,因此生成了烦人的 upstart 条目,这是您应该编辑的内容。有问题的变量被调用SUPPORTED_INITS并设置为非常接近文件的开头。如果你想摆脱对启动新贵的支持,你必须从这里删除它。
改变这个:
SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"
Run Code Online (Sandbox Code Playgroud)
对此:
SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd"
Run Code Online (Sandbox Code Playgroud)
然后你需要从你刚刚编辑的模板中重建你的引导配置文件1:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
进行这些更改时,请备份您要更改的文件,并将其放在安全的地方,例如~/Documents目录或其他内容,以确保包管理器操作不会意外删除它。如果工作量太大,只需复制您要更改的行,然后将其注释掉(当然,在 , 的情况下grub.cfg,grub-mkconfig下次运行时会覆盖这些更改。
1您应该在更改脚本后始终检查它以验证它是否会运行。您可以使用grub-script-check /boot/grub/grub.cfg来确保在编辑或生成新脚本后脚本中没有语法错误,并且绝对是在重新启动之前。