news 2026/6/9 21:24:02

测试开机启动脚本使用心得,适合新手参考

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
测试开机启动脚本使用心得,适合新手参考

测试开机启动脚本使用心得,适合新手参考

1. 为什么需要开机启动脚本?

你有没有遇到过这样的情况:每次重启服务器或设备后,都要手动运行一堆命令?比如启动某个服务、配置网络、挂载磁盘,或者运行一个监控脚本。重复操作不仅麻烦,还容易遗漏。

这时候,开机启动脚本就能帮你“一劳永逸”——只要设置一次,系统每次开机都会自动执行你指定的命令。

本文基于“测试开机启动脚本”镜像的实际使用经验,结合 Ubuntu 16.04 和 Tina 系统环境,用大白话带你搞懂如何让命令在开机时自动运行,特别适合刚接触 Linux 的新手。


2. 开机启动的核心机制:rc.local 文件

2.1 它是怎么工作的?

Linux 系统在完成开机流程后,会自动查找并执行一个叫/etc/rc.local的文件。你可以把它理解成一个“开机任务清单”:只要把你想运行的命令写进去,系统启动时就会一条条执行。

这个机制简单、稳定,不需要复杂的配置,非常适合轻量级自动化需求。

小贴士
不是所有系统都默认启用rc.local,尤其是较新的 Ubuntu 版本(18.04+)可能需要额外启用该服务。但本文测试环境为 Ubuntu 16.04 和 Tina,均支持直接使用。


2.2 rc.local 文件的基本结构

一个标准的rc.local文件长这样:

#!/bin/bash # 你的命令放在这里 [your command1] [your command2] # 必须以 exit 0 结尾 exit 0

注意几个关键点:

  • #!/bin/bash:表示用 bash 解释器来运行这个脚本(有些系统可以省略,但建议保留)
  • 命令写在exit 0之前:系统会逐行执行这些命令
  • exit 0不能少:表示脚本成功执行完毕。如果少了这一句,可能导致系统卡住或启动变慢

3. 实际操作步骤:添加自己的开机任务

3.1 编辑 rc.local 文件

打开终端,输入以下命令编辑文件:

sudo nano /etc/rc.local

如果你习惯用vim,也可以换成:

sudo vim /etc/rc.local

3.2 在 exit 0 前添加你的命令

假设你想实现以下两个操作:

  1. 启动无线网卡wlan0
  2. 给它配置一个静态 IP 地址

你可以在文件中加入:

ifconfig wlan0 up ifconfig wlan0 192.168.1.100 netmask 255.255.255.0

完整文件内容如下:

#!/bin/bash # 自定义开机任务 ifconfig wlan0 up ifconfig wlan0 192.168.1.100 netmask 255.255.255.0 exit 0

保存并退出(nano 用户按Ctrl+O保存,Ctrl+X退出)。


3.3 设置文件权限(重要!)

为了让系统能顺利执行这个脚本,必须确保它有可执行权限。

运行以下命令:

sudo chmod +x /etc/rc.local

这一步很关键,否则你的命令可能不会被执行。


3.4 验证是否生效

最简单的验证方法就是重启系统:

sudo reboot

重启完成后,检查网络是否已正确配置:

ifconfig wlan0

如果看到 IP 地址已经是192.168.1.100,说明你的开机脚本已经成功运行!


4. 常见问题与避坑指南

4.1 命令没执行?可能是这些问题

问题原因解决方法
脚本完全没运行权限不足执行sudo chmod +x /etc/rc.local
命令执行失败路径问题或依赖未加载使用绝对路径,如/sbin/ifconfig
系统卡在启动界面缺少exit 0务必在最后一行加上exit 0
某些服务启动失败网络或文件系统还没准备好添加延迟,例如sleep 5

4.2 推荐使用绝对路径

虽然ifconfig在大多数情况下可以直接用,但为了保险起见,建议使用完整路径:

/sbin/ifconfig wlan0 up /sbin/ifconfig wlan0 192.168.1.100 netmask 255.255.255.0

你可以通过which ifconfig查看命令的实际路径:

which ifconfig # 输出通常是:/sbin/ifconfig

4.3 如何调试 rc.local?

如果不确定脚本是否正常运行,可以加一些日志输出来帮助排查。

例如,在命令前后加上时间戳记录:

echo "$(date): Starting wlan0 configuration" >> /var/log/rc-local.log /sbin/ifconfig wlan0 up /sbin/ifconfig wlan0 192.168.1.100 netmask 255.255.255.0 echo "$(date): wlan0 configured" >> /var/log/rc-local.log

重启后查看日志:

cat /var/log/rc-local.log

这样就能清楚知道脚本是否执行、在哪一步出错。


5. 更多实用场景示例

5.1 自动挂载U盘或硬盘

如果你有一个固定使用的U盘或移动硬盘,可以通过 UUID 自动挂载。

先创建挂载目录:

mkdir -p /mnt/usb

然后在rc.local中添加:

sleep 3 mount UUID=your-usb-uuid /mnt/usb

提示:用blkid命令查看设备的 UUID。


5.2 启动自定义程序或脚本

假设你有一个 Python 脚本/home/pi/sensor_monitor.py,想让它开机就运行。

可以这样写:

sleep 5 python3 /home/pi/sensor_monitor.py &

注意:

  • sleep 5等待系统资源准备完成
  • &表示后台运行,避免阻塞启动流程

5.3 设置静态路由或防火墙规则

比如添加一条默认路由:

ip route add default via 192.168.1.1 dev eth0

或者开启简单的防火墙规则:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

这些都可以放在rc.local中统一管理。


6. 总结

6.1 核心要点回顾

  • /etc/rc.local是 Linux 开机自启的经典方式
  • 命令要写在exit 0之前
  • 务必赋予可执行权限:chmod +x /etc/rc.local
  • 推荐使用绝对路径和日志记录,便于调试
  • 适用于 Ubuntu 16.04、Tina 等传统系统

6.2 新手建议

对于刚入门的朋友,建议从最简单的命令开始尝试,比如打印一句话、创建一个文件,确认机制可行后再逐步增加复杂度。

一个小练习:

echo "System started at $(date)" > /tmp/boot.log

把这个命令放进rc.local,重启后看看/tmp/boot.log是否存在且内容正确。

一旦你成功跑通第一个自动任务,后面的路就会越来越顺。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 14:34:19

Qwen与Canva集成:一键导入生成图进行排版设计实战教程

Qwen与Canva集成:一键导入生成图进行排版设计实战教程 你是否曾为儿童读物、早教课件或亲子活动海报缺少合适的插图而烦恼?现在,借助阿里通义千问大模型驱动的 Cute_Animal_For_Kids_Qwen_Image 图像生成器,只需一句话描述&#…

作者头像 李华
网站建设 2026/6/8 15:02:06

用Qwen3-1.7B实现代码生成,效果令人惊喜

用Qwen3-1.7B实现代码生成,效果令人惊喜 你有没有试过让AI帮你写一段能直接跑通的Python脚本?不是泛泛而谈的伪代码,而是带异常处理、有注释、变量命名合理、甚至考虑了边界条件的真实代码?最近我用Qwen3-1.7B做了几轮实测——从…

作者头像 李华
网站建设 2026/6/8 15:18:58

5分钟理解Unsloth原理,小白也能懂的技术解析

5分钟理解Unsloth原理,小白也能懂的技术解析 1. 为什么你需要了解Unsloth? 你是不是也遇到过这样的问题:想微调一个大模型,结果跑不动?显存爆了、训练太慢、环境装不上……这些问题让很多刚入门的朋友望而却步。今天…

作者头像 李华
网站建设 2026/6/8 19:18:01

DLSS Swapper:游戏性能优化工具的技术解析与实战应用

DLSS Swapper:游戏性能优化工具的技术解析与实战应用 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在PC游戏领域,游戏性能优化工具的选择直接影响玩家体验。NVIDIA DLSS(深度学习超…

作者头像 李华
网站建设 2026/6/9 19:44:34

Qwen对话冷启动问题?预热Prompt设计教程

Qwen对话冷启动问题?预热Prompt设计教程 1. 为什么你的Qwen一上来就“卡壳”? 你有没有遇到过这种情况:刚部署好Qwen模型,兴致勃勃地输入一句“今天心情不错”,结果AI回你个“嗯”或者干脆答非所问?这种对…

作者头像 李华