我现在已经是 Arch Linux 的老用户了,对rc.conf
全局系统配置文件非常满意。然后是 systemd。
仍在尝试适应它。因此,我的问题如下:
在我的旧电脑上,我使用 dhcpcd 启用了网络接口在启动时启动,如下所示:
# systemctl enable [email protected]
几年后,我更换了主板,现在的网络接口名称也不再一样了。我在安装 grub 和新图形驱动程序时遇到了一些问题,但总的来说,我的 Arch 运行良好。我使用上一个命令为 dhcpcd 配置了一个新的网络接口,但我找不到如何像以下命令一样删除旧网络接口,因为我不记得它的名字了……而且启动需要很长时间,因为它是一项阻止所有其他任务的工作。
# systemctl disable [email protected]
sudo systemctl list-unit-files | grep enabled
也无济于事,因为它仅显示[email protected]
。 sudo systemctl status
没有向我提供失败的网络接口......
那么,有没有什么文件可以让我获取这些信息?或者我是否错过了手册页或优秀的 Arch Wiki 中的某些内容?
我有一些次要的问题:
- 我如何从 chrooted 环境/live CD 执行此操作?编辑
rc.conf
文件很容易排除故障,但现在我有点迷茫了。 - 我如何更改启动顺序并指定某个过程是否必须在后台完成?
当然,我会在文档的某个地方找到它,但如果有人能伸出援助之手,为我指明正确的方向。
答案1
刚刚通过浏览 systemd 文件发现了它:
cd /etc/systemd
tree
它就在系统 > multi-user.target.wants 文件夹下。
所以现在我可以禁用它了。我仍然希望有更好的方法在 systemd 下列出它 - 或者如果没有,请确保有,以便我可以提交错误报告。
我将等待其他答案。
答案2
我没有使用 Arch 而且不知道模板[email protected]
是什么样子的,但是如果它已加载(并且应该加载,因为它会减慢你的启动速度)你应该在输出中看到它systemctl
。
如果您想了解有关 systemd 的更多信息,您应该查看systemctl --help
。
从 livecd 列出和配置 systemd 单元文件就像添加--root=<path>
到 systemd 命令一样简单,但请记住,没有正在运行的 systemd 实例,因此只有在文件系统上运行的命令才会像 一样工作enable disable list-unit-files
。
正如您自己发现的那样,每个管理员生成的配置都会在/etc/systemd/
enable
大多数时候创建一个从.target.wants
到单元文件(可能是模板)的符号链接。如果您想知道选择了哪个目标,请阅读[Install]
单元文件中的部分systemctl cat <unit name>