服务 cgconfig 将无法启动,因为找不到它

服务 cgconfig 将无法启动,因为找不到它

我正在尝试通过以下方式创建 cgroup 层次结构本教程

  • libcgroup使用安装包
    dnf install libcgroup
    
    并且安装成功。
  • cgconfig我尝试通过运行来 检查配置的状态
    systemctl status cgconfig
    
    我得到了错误
    Unit cgconfig.service could not be found.
    
  • 我尝试启用该服务,但遇到了同样的错误。
  • 我尝试libcgroup再次安装该软件包,但我得到了Nothing to do!,表明它已经安装了。

我找不到该文件/etc/cgconfig.conf。我安装了该chkconfig命令,但看来您是从/etc/rd.d/init.d目录中的服务启动的(https://www.howtoing.com/chkconfig-command-examples/),并且我的系统上没有这样的目录。

我使用的是 Fedora 33。任何建议或帮助将不胜感激。

答案1

您正在使用适用于 Fedora 的教程15,仍然使用 cgroups 实现版本 1。在 Fedora 31 中,引入了 cgroups 版本 2 并默认启用。

chkconfig命令和/etc/rc.d/init.d目录适用于经典的 SysVinit 风格的服务,在 Fedora 引入之后systemd(也在 Fedora 15 中),它已经尽可能地从旧的 SysVinit 风格迁移。看起来在 Fedora 33 中,从 SysVinit 风格的迁移已经基本完成,默认情况下不再安装它的兼容层,因此/etc/rc.d/init.d目录不再存在。

斯蒂芬·基特的回答当前推荐的使用 cgroup 的方式。但如果您想要/需要使用旧样式:

在 Fedora 33 中,该cgconfig服务现在位于软件包中libcgroup-tools,并且默认情况下有一个 systemd 样式的cgconfig.service文件,因此您不需要chkconfig.为了使旧教程正常工作,您可能还必须使用内核引导参数回退到 cgroups v1 systemd.unified_cgroup_hierarchy=0。 (免责声明:这在 Fedora 31 和 32 中有效,不确定 33 是​​否有效。)

答案2

您正在阅读的文档是为 Fedora 15 编写的,基本上已经过时了。

在 Fedora 33 中,默认使用 cgroup v2 层次结构,并由 systemd 管理。您可以使用检查它systemd-cgls,并监控它systemd-cgtop。要在层次结构中创建新的“切片”并在其中运行命令,请使用systemd-run

单位也可以被赋予自己永久的资源限制;多种选择可用于直接指定限制CPUQuoteMemoryLimit),并且切片也可以显式指定(Slice)。

相关内容