systemd 配置文件在哪里?

systemd 配置文件在哪里?

如何在特定目标中启用特定单位?启用后,配置存储在哪里?

答案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 也有他们的文档中有关它的一些信息

相关内容