随便记录一下。
实现开机自动检测有无ip,没有就重启网络服务
板子重启网络服务的命令为:sudo /etc/init.d/networking restart
。一般板子插上网线后没有ip,没法连接板子的时候,用串口执行这个命令能够解决问题。
参考资料
参考:
1、Ubuntu20.04设置开机自启脚本、开机自启命令(ubuntu自启,ubuntu开机自启)rc(run command)(systemd)(/etc/rc.local)(开机启动原理)开机自启动
2、Ubuntu20.04–开机自动运行脚本(命令)–方法/实例
实现细节
新建的/etc/rc.local文件内容为:
#!/bin/bash
# /etc/rc.local
# 获取当前系统上的IP地址
current_ip=$(ip -o -4 addr show scope global | awk '{split($4, a, "/"); print a[1]}')
# 检测是否存在IP
if [ -z "$current_ip" ]; then
echo "没有检测到IP地址,正在重新启动网络服务..."
# 重启网络服务,具体命令可能因Linux发行版而异
# 以下是一个基于systemd的例子,可以根据实际情况修改
systemctl restart /etc/init.d/networking # 请根据实际的网络服务名称调整
echo "网络服务已重新启动。"
else
echo "当前IP地址为: $current_ip"
fi
echo "测试成功,能够运行" >> /home/topeet/Documents/test.log
exit 0
重启后,能够得到文件:
测试成功
小问题:一开始是没有ip的,不管网络服务有没有正常启动,都会执行重启网络服务