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

Linux主机名SystemD服务文件导致NetworkManager启动失败的问题求助

Linux主机名SystemD服务文件导致NetworkManager启动失败的问题求助

各位大佬好,最近我在配置Linux主机的NIS域名服务时,自己写了个nis-domainname.service的systemd服务文件,结果重启后发现NetworkManager启动异常,查看journal日志的时候看到了这个错误:

systemd[1]: NetworkManager-wait-online.service: Job nis-domainname.service/start deleted to break ordering cycle starting with NetworkManager-wait-online.service/start

试了好几次重启NetworkManager,每次都会出现这个循环提示,导致网络有时候不能正常初始化,有没有大佬能帮忙分析下问题出在哪,怎么解决呀?

我目前的排查进展:

  • 确认nis-domainname.service的核心功能是调用domainname命令设置主机的NIS域名,服务文件的ExecStart段逻辑没问题
  • 没修改过NetworkManager的默认配置,之前网络都是正常的,问题是在添加这个自定义服务后才出现的

自己摸出来的解决步骤(供大家参考):

  1. 定位依赖循环根源:先查看自定义服务的配置文件,执行命令:

    cat /etc/systemd/system/nis-domainname.service
    

    发现我在[Unit]段里错误地加了After=NetworkManager-wait-online.service——其实设置本地NIS域名根本不需要等网络完全就绪,这就导致两个服务形成了隐性的依赖循环。

  2. 修改服务配置打破循环:把After=NetworkManager-wait-online.service这一行删掉,或者替换成更宽松的依赖,比如:

    [Unit]
    Description=Set NIS Domain Name
    After=sysinit.target
    
  3. 重新加载systemd配置并重启服务:

    systemctl daemon-reload
    systemctl restart NetworkManager nis-domainname
    
  4. 验证结果:查看日志确认错误消失:

    journalctl -u NetworkManager.service -u nis-domainname.service -f
    

额外排查小技巧:

如果遇到类似的依赖循环问题,还可以用这两个命令快速定位:

  • systemd-analyze plot > boot.svg:生成启动依赖关系图,导出成svg后用浏览器打开,能直观看到循环的服务节点
  • systemd-analyze verify /etc/systemd/system/nis-domainname.service:让systemd直接检查服务文件的依赖配置问题,会给出明确的错误提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:14:52