启动ubuntu,出现Timed out waiting for device dev-ttymxc0.device、[FAILED] Failed to start Raise network in

问题截图:

[ TIME ] Timed out waiting for device dev-ttymxc0.device.
[DEPEND] Dependency failed for Serial Getty on ttymxc0.
[   ***] A start job is running for Raise ne... interfaces (3min 39s / 5min 1s)
[FAILED] Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details.

参考文档:
cA start job is running for Raise network interface(5min 13s )问题解决方法_习惯就好zz的博客-CSDN博客

初步解决方法(下面有最终解决办法):

修改/etc/systemd/system/network-online.target.wants/networking.service文件中TimeoutStartSec=5min的属性值,改成TimeoutStartSec=2sec;这样2sec网络建立不成功就会继续开机;

——————————————————————————————————————————

疑惑:network-online.target.wants/networking.service这个文件的作用是什么?怎么来的?

参考文档:linux创建并使用service_linux 创建service_ziop-三月的博客-CSDN博客

/etc/systemd/system 和 /lib/systemd/system 的区别_进击云原生的博客-CSDN博客

https://www.ngui.cc/el/3351688.html?action=onClick

解答:/etc/systemd/system/存放的是linux开机 Unit(服务等)的软链接;

systemd 介绍

服务设定位置:

  • /usr/lib/systemd/system/
  • /run/systemd/system/
  • /etc/systemd/system/(一般为连接文件)

服务统一管理:systemd

service 设定文件:

  • /usr/lib/systemd/system/*.service: 预设设定文件
  • /etc/systemd/system/system/*.service.d/: 用户个性化设定文件,会被加入设定
  • /etc/systemd/system/system/*.service.wants/: 连结文件,启动该服务后推荐启动的其他服务
  • /etc/systemd/system/system/*.service.requires/: 连结文件,启动该服务之前,需要预先启动的服务
  • /run/systemd/generator.late 使用 systemd-sysv-generator 工具处理 SysV init 脚本(即:/etc/init.d/*),自动生成.service 文件

.service文件

其中,[Unit]设置该服务与其它服务的启动顺序和依赖关系,[Service]设置服务的具体内容和行为,[Install]设置开机启动的方法。

[Unit]以下配置为例:

[Unit]
Description=Explain The Service
Documention=
Before=a.service
After=b.target
Wants=c.service
Requires=d.service

Description:对该服务的描述;
Documention:说明文档;
Before:在a.service服务启动前,启动本服务;
After:在b.target服务组启动后,再启动本服务;
Wants:弱依赖于c.service,即使被依赖服务启动失败或停止,本服务仍然运行;
Requires:强依赖于d.service,如果被依赖服务启动失败或停止,本服务也会停止。

[Service]以下配置为例:服务具体执行的方式

[Service]
EnvironmentFile=/path_to_file
ExecStart=/your_script_dir/autoJupyterLab.sh $OPTIONS
ExecStop=
ExecReload=
ExecStartPre=
ExecStartPost=
ExecStopPost=
Type=simple
KillMode=process
Restart=on-failure
RestartSec=42s

EnvironmentFile:服务的参数文件,形成$OPTIONS;
ExecStart,ExecStop等:启动命令组,分别是服务启动时,停止时,重启时,启动前,启动后,停止后执行的命令;
Type:服务启动类型。默认simple表示ExecStart为主进程,notify类似于simple,启动结束后会发出通知信号。另外还有forking,oneshot,dbus,idle等类型;
KillMode:服务停止类型,默认control-group停止时杀死所有子进程,process只杀主进程,none只停止服务,不杀进程;
Restart:服务重启类型,默认no不重启,on-success正常退出时重启,on-failure非正常退出时重启,还有always,on-abnormal,on-abort等;
RestartSec:间隔多久重启服务。

[Install]以下配置为例:

[Install]
WantedBy=multi-user.target

WantedBy:服务所在的服务组。

multi-user.target服务组中的服务,在sudo systemctl enable xxx.service后,符号链接被放在/etc/systemd/system/multi-user.target.wants/目录下。而系统默认启动的Target可由sudo systemctl get-defaults得到:

# sudo systemctl get-defaults
graphical.target

graphical.target又以multi-user.target为Requires和After关系,因此开机将自启动multi-user.target服务组。 

进一步分析:通过上面的开机启动的service,最终对网络eth0进行配置,配置文件是/etc/network/interfaces.d/eth0,默认内容是进行DHCP配置,如下:

auto eth0
iface eth0 inet dhcp

原因有可能是DHCP和静态IP冲突了,所以显示Failed to start Raise network interfaces.

最终解决方法

/etc/network/interfaces.d/eth0删除掉,或者改成eth0.bck。这样找不这个文件,就不会进行重新配置,采用的还是uboot传进来的网口配置。

你也可以修改eth0内容,改成静态IP配置,像下图这样,但是需要确保没有IP冲突。

auto eth0
iface eth0 inet static
address 192.168.2.99
netmask 255.255.255.0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值