这是涵盖所有“初创公司正在竞选”问题的总括性问题,无论其根本原因是什么。
对我来说,这通常发生在不当关机或软件包安装/卸载或使用新硬件之后。
不管具体原因是什么,假设“启动作业”是配置为在启动时运行的作业,我在哪里可以找到此配置或计划在启动时运行的作业列表(并从我们短暂的生活中窃取宝贵的时间)?我如何编辑/删除麻烦/不必要的启动作业(并平静地度过我所剩无几的生活)?
这是涵盖所有“初创公司正在竞选”问题的总括性问题,无论其根本原因是什么。
对我来说,这通常发生在不当关机或软件包安装/卸载或使用新硬件之后。
不管具体原因是什么,假设“启动作业”是配置为在启动时运行的作业,我在哪里可以找到此配置或计划在启动时运行的作业列表(并从我们短暂的生活中窃取宝贵的时间)?我如何编辑/删除麻烦/不必要的启动作业(并平静地度过我所剩无几的生活)?
“正在运行一个启动作业”消息似乎是 的典型消息
systemd
。根据您的评论,您似乎完全不知道systemd
。如果您打算管理使用 的 Linux 发行版systemd
,那么这种情况并不好。因此,这里有一个关于它的简短入门知识。您将在 找到从包安装的配置部分
/usr/lib/systemd/system/
,在 找到本地自定义部分/etc/systemd/system/
,在 找到动态生成的部分/run/systemd/system/
。 中的任何配置文件都/etc/systemd/system/
将覆盖提到的其他两个位置中同名的文件。当系统运行时,您可以运行不带任何参数的命令来查看systemd 单元
systemctl
列表。如果您的终端支持彩色显示,则任何失败的单元都应以红色显示,否则以粗体显示。请注意,此列表实际上是一种简化表示:单元列表的真实形式是依赖关系的树形图。请参阅
man 7 bootup
以了解整个引导过程的描述,包括一些 ASCII 艺术图。Systemd 为一般单元文件提供手册页,
man systemd.unit
以及为每种单元类型提供手册页man systemd.service
,例如man systemd.device
、man systemd.mount
等。您可能最关心
*.service
单元,但请注意,还有一些*.device
和*.mount
单元是根据 udev 规则和一些经典配置文件(如/etc/fstab
和/或 )自动生成的。自动生成由位于 的生成器脚本/etc/crypttab
执行。/usr/lib/systemd/system-generators/
每个系统提供的生成器脚本都应该有自己的手册页,用于标识它读取的配置文件以及您可能用来临时覆盖生成器的任何内核命令行选项。对于自动生成的单元,要永久修复,您应该转到控制相应生成器的配置文件,并删除或修复可能导致延迟的任何过时或错误的配置行。
例如,如果某个
*.mount
单元由于网络共享不再可访问而导致启动延迟,则只需删除对它的引用/etc/fstab
或添加一个noauto
选项即可阻止生成器在启动时尝试自动安装它。对于
*.service
单位,您需要了解一些命令:systemctl status <unit name>
将列出单元的当前状态及其生成的最后几行日志(如果有)。journalctl -u <unit name>.service
将在您最喜欢的寻呼机中显示相关服务生成的完整日志(默认为less
)systemctl disable <unit name>
将告诉 systemd“我并不特别希望此服务在启动时启动,但如果其他服务需要它,我并不反对启动它。”如果添加该--now
选项,它也会立即停止该服务。systemctl mask <unit name>
将告诉 systemd“我绝对不希望此服务在任何时候启动:如果其他服务需要它,那么让其他服务也失败。”如果某个服务当前正在运行,请先停止它,然后再屏蔽它。systemctl unmask <unit name>
将撤消先前的systemctl mask
操作。systemctl enable <unit name>
将告诉 systemd“在每次启动时启动此服务,除非另有说明”。如果您添加该--now
选项,它还将立即启动该服务。systemctl start <unit name>
并将systemctl stop <unit name>
立即启动和停止服务单元,但新状态将不会在重启后持续存在;为此,您需要systemctl enable
/ 。systemctl disable
systemctl daemon-reload
在执行任何其他操作之前运行以使这些更改生效。现在您应该已经了解了足够多的
systemd
危险知识。请以此为起点来了解更多信息。