You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置systemd实现GPU、Weston及虚拟化驱动早加载与非关键服务延迟

配置systemd实现关键模块早加载与非关键组件延迟激活

一、处理非关键内核模块

你已经通过/etc/modules-load.d/配置完成GPU等关键模块的早加载,针对非关键模块,按以下方式处理:

  • 首先移除非关键模块在/etc/modules-load.d/目录下的所有配置文件(或删除对应文件中的模块条目),避免systemd-modules-load.service开机自动加载它们。
  • 若需要统一管理非关键模块的手动加载,可创建自定义systemd服务单元:
    1. 创建文件/etc/systemd/system/load-non-critical-modules.service,写入以下内容:
      [Unit]
      Description=Load non-critical kernel modules manually
      
      [Service]
      Type=oneshot
      ExecStart=/usr/bin/modprobe <模块1> <模块2>...
      ExecStop=/usr/bin/rmmod <模块2> <模块1>...  # 可选,用于卸载模块
      RemainAfterExit=yes
      
      [Install]
      WantedBy=multi-user.target
      
    2. 执行systemctl daemon-reload刷新配置,然后执行systemctl disable load-non-critical-modules.service,确保开机不自动启动。
    3. 需要加载非关键模块时,手动执行systemctl start load-non-critical-modules.service;卸载则执行systemctl stop load-non-critical-modules.service。

二、延迟非关键systemd服务

针对不需要开机启动的服务,直接通过以下操作设置延迟激活:

  • 执行systemctl disable <服务名>,该命令会移除服务的开机启动链接,开机时不会自动启动,需要时手动执行systemctl start <服务名>即可激活。
  • 若某些服务存在强制依赖导致无法禁用,可先执行systemctl mask <服务名>彻底屏蔽(注意:屏蔽后无法手动启动,如需恢复执行systemctl unmask <服务名>)。
  • 可通过systemctl list-unit-files --type=service查看所有服务的启动状态,确认非关键服务已设置为disabled或masked。

三、关于systemd-modules-load.service的处理

该服务负责加载/etc/modules-load.d/、/run/modules-load.d/、/usr/lib/modules-load.d/下配置的模块,你已通过它实现关键模块的早加载,因此无需修改该服务的状态,保持默认的enabled即可——只要你已移除非关键模块的配置,它只会加载你需要的关键模块,不会影响非关键组件的延迟激活。

验证命令

  • 查看模块加载状态:lsmod | grep <模块名>
  • 查看服务状态:systemctl status <服务名>
  • 手动加载单个模块:modprobe <模块名>
  • 手动卸载单个模块:rmmod <模块名>

内容的提问来源于stack exchange,提问作者Malin Shaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:49:58