启动网络服务时提示Job for network.service failed because the control process exited with error code. 该如何处理?

问题现象

Linux系统内运行systemctl restart network命令启动网络服务时,提示Job for network.service failed because the control process exited with error code. 错误,如下图所示。本文以CentOS 7.9系统为例。报错信息

如何排查

出现该问题后,您可以进一步执行命令sudo journalctl -xe -u network.service查看详细原因。

image

可能原因

可能是对网络配置修改的相关操作引起的网络配置错误,导致网络接口加载异常,比如以下场景:

  • 通过控制台或OpenAPI解绑实例辅助网卡后未删除对应网卡的配置文件。

  • 网络配置文件中的网络接口名称和实际不同(如您通过ip a查看到实际有eth0、eth1的网络接口,但是在网络配置文件(/etc/sysconfig/network-scripts/ifcfg-*)中命名为了eth0、eth2。

解决方案

您可以参考以下步骤,保证网络配置和实际情况一致,如删除不存在的网卡对应的配置文件、保证网络接口命名正确等。

  1. 远程连接ECS实例。

    具体操作,请参见ECS远程连接方式概述

  2. 查看网卡配置文件和ECS实例的网卡是否一致。

    • 查看网卡配置文件。

      ll /etc/sysconfig/network-scripts/ifcfg*
      说明

      不同系统网卡配置文件所在目录不同,请根据实际情况修改以上命令。

      • Red Hat系列:/etc/sysconfig/network-scripts/

        • CentOS 6/7/8

        • Red Hat 6/7/8/9

        • Anolis 7/8

        • Fedora 33/34/35

        • Alibaba Cloud Linux 2/3

        • CentOS Stream 8/9

        • Rocky Linux

        • AlmaLinux

      • Ubuntu 18/20:/etc/netplan/

      • SLES系列:/etc/sysconfig/network/

        • OpenSUSE

        • SUSE Linux

      • Debian、Ubuntu 16.04及以下版本:网卡允许热插拔,因此网卡不存在不会影响网络服务启动

      如下图所示,存在eth0eth1两块网卡的配置文件。查看网卡配置文件

    • 查看ECS实例的网卡信息。

      ip address show

      如下图所示,该ECS实例只有eth0一块网卡。查看网卡信息

    • 如果网卡配置文件与实际网卡信息不一致,请继续执行步骤3

    • 如果网卡配置文件内网卡命名与实际网卡命名不一致,您需要修改网络接口文件名称命名(ifcfg-eth*)及文件内部DEVICE对应的值,保证信息一致后,请继续执行步骤4

    • 如果网卡配置文件与实际网卡信息一致,流程结束。

  3. 删除多余网卡配置文件。

    rm -rf /etc/sysconfig/network-scripts/ifcfg-eth1

    如下图所示,eth1网卡配置文件已删除。删除网卡配置文件

  4. 重启网络服务。

    systemctl restart network
  5. 查看网络服务状态。

    systemctl status network

    如下图所示,表示当前网络服务状态已正常。查看网络服务状态