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

能否为系统中所有systemd服务批量添加Restart=on-failure配置(优先采用覆盖方式)

能否为系统中所有systemd服务批量添加Restart=on-failure配置(优先采用覆盖方式)

当然可以!针对你提到的「服务因硬件问题开机启动失败,想批量设置Restart=on-failure而不是逐个配置」的场景,有两种靠谱的方案,优先覆盖方式的话推荐第一种:

方案一:批量生成服务的Drop-in覆盖配置(推荐,真正的覆盖方式)

systemd的Drop-in配置是专门用来覆盖或补充原有服务配置的机制,每个服务的Drop-in文件会优先于原服务文件生效。我们可以写个简单的脚本批量给所有服务生成对应的Drop-in配置:

  1. 执行以下脚本(可根据需求调整服务范围,比如只处理已启用的服务):
# 获取所有已启用的systemd服务(若要处理所有服务,把--state=enabled改成--state=all即可)
for service in $(systemctl list-unit-files --type=service --state=enabled | awk '{print $1}' | grep -v "^UNIT FILE$"); do
    # 跳过系统核心关键服务(避免意外,可根据实际情况修改排除列表)
    if [[ $service != "systemd.service" && $service != "systemd-journald.service" && $service != "systemd-udevd.service" ]]; then
        # 创建该服务的Drop-in配置目录(不存在则创建)
        mkdir -p "/etc/systemd/system/${service}.d"
        # 写入Restart配置的Drop-in文件
        cat > "/etc/systemd/system/${service}.d/restart-on-failure.conf" << EOF
[Service]
Restart=on-failure
EOF
    fi
done
# 重新加载systemd配置,让新的Drop-in生效
systemctl daemon-reload
  1. 生效说明:
    • 这个方法会强制覆盖每个服务的Restart参数,哪怕原服务本身已经设置了其他Restart值,Drop-in里的配置会优先生效
    • 对于已经在运行的服务,需要重启它们才能让新的重启策略生效:systemctl restart <服务名>,如果要批量重启,可在脚本末尾添加循环重启的命令(注意:不要随意重启系统核心服务,避免系统异常)

方案二:修改systemd全局默认配置(fallback方式)

如果想设置全局默认的重启策略(仅当服务本身没有配置Restart时生效),可以修改systemd的全局配置文件:

  1. 编辑/etc/systemd/system.conf文件,找到[Manager]区块,添加或修改以下内容:
DefaultRestart=on-failure
  1. 执行以下命令让配置生效:
systemctl daemon-reexec
  1. 注意事项:
    • 这个是默认fallback机制,不会覆盖服务本身已经配置的Restart参数,只有服务没设置时才会用这个默认值
    • 若之后想恢复默认,只需把DefaultRestart注释掉或者改回原默认值(通常是no),再执行systemctl daemon-reexec即可

取消配置的方法

如果之后想撤销批量设置的Restart=on-failure,只需删除对应的Drop-in文件即可:

for service in $(systemctl list-unit-files --type=service --state=enabled | awk '{print $1}' | grep -v "^UNIT FILE$"); do
    rm -f "/etc/systemd/system/${service}.d/restart-on-failure.conf"
    # 如果Drop-in目录为空,可顺便删除目录
    rmdir --ignore-fail-on-non-empty "/etc/systemd/system/${service}.d"
done
systemctl daemon-reload

备注:内容来源于stack exchange,提问作者xeruf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:59:06