如何在特定目标中启用特定单位?启用后,配置存储在哪里?
答案1
正如 Hauke Laging 所说,systemctl enable ...
将打印出有关正在执行的操作的信息。例如,在我的 Arch 系统上,如果我dhcpd
在接口上启用该服务enp0s3
......
$ systemctl enable dhcpcd@enp0s3
Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected]
to /usr/lib/systemd/system/[email protected]
禁用此服务时,您可以看到systemctl
删除了之前的链接...
$ systemctl disable dhcpcd@enp0s3
Removed symlink /etc/systemd/system/multi-user.target.wants/[email protected]
因此,从这个输出中,您可以看出......
- 调用时
systemctl enable
,会在 下创建一个符号链接/etc/systemd/system/multi-user.target.wants
。 - 当调用 时
systemctl disable
,这个符号链接被删除。
因此,如果您想获取已启用服务的列表(我想您称之为“配置”),您所要做的就是列出这些链接:
ls /etc/systemd/system/multi-user.target.wants
但是,您可能会使用 找到更多信息systemctl list-unit-files
,它将列出所有可用服务及其状态(启用、禁用、静态)。您将看到已启用的单元在 下某处有一个链接/etc/systemd/system
,具体取决于它们所属的单元。
$ find /etc/systemd/system -type l
systemd
虽然某些发行版的目录可能会发生变化,但它们是(以及之前的其他系统)处理其设置的方式。虽然/etc/systemd
保存了多个配置文件,但特定于单元的设置是通过链接处理的。对我来说,这种方法比文件实用得多,因为它允许开发人员提供单元及其软件包(安装在 下/usr/lib/systemd/system
),但仍然将控制权交给管理员,管理员可以决定在系统上安排哪些单元。
如果你有兴趣,Arch Wiki 实际上提供了一个很好的介绍systemd
。 RHEL 也有他们的文档中有关它的一些信息。