news 2026/6/11 0:08:15

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

作者头像

张小明

前端开发工程师

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/10 14:36:53

图文并茂教你用gpt-oss-20b-WEBUI,看完就能自己操作

图文并茂教你用gpt-oss-20b-WEBUI,看完就能自己操作 1. 引言:为什么你要试试这个镜像? 你是不是也遇到过这种情况:想本地跑个大模型,结果发现部署太复杂,环境依赖一堆,显存还不足?…

作者头像 李华
网站建设 2026/6/10 19:09:58

Llama3-8B部署教程:Windows WSL环境配置步骤

Llama3-8B部署教程:Windows WSL环境配置步骤 1. 为什么选Llama3-8B?一句话说清价值 你是不是也遇到过这些问题:想本地跑个大模型,但显卡只有RTX 3060;想做英文对话或轻量代码辅助,又怕模型太重跑不动&…

作者头像 李华
网站建设 2026/6/10 11:45:52

模型名字太长记不住?常用简称对照表

模型名字太长记不住?常用简称对照表 在语音识别领域摸爬滚打的开发者,大概都经历过这样的尴尬时刻: 打开镜像列表,看到一长串字符——“Speech Seaco Paraformer ASR阿里中文语音识别模型 构建by科哥”, 想复制粘贴却…

作者头像 李华
网站建设 2026/6/10 18:04:29

Qwen3-14B部署优化案例:128K长文本处理提速50%方法

Qwen3-14B部署优化案例:128K长文本处理提速50%方法 1. 引言:为什么选择Qwen3-14B做长文本推理? 你有没有遇到过这样的场景:一份几十万字的合同、技术白皮书或小说草稿,需要快速提取关键信息、总结结构,甚…

作者头像 李华
网站建设 2026/6/10 15:21:46

Qwen3系列模型全景解析:1.7B在产品化中的定位与价值

Qwen3系列模型全景解析:1.7B在产品化中的定位与价值 1. Qwen3-1.7B:轻量级大模型的实用之选 在当前大模型“军备竞赛”不断向千亿参数迈进的背景下,Qwen3-1.7B 的出现提供了一种截然不同的思路——不是一味追求规模,而是聚焦于实…

作者头像 李华
网站建设 2026/6/10 15:22:08

Llama3-8B如何提升响应速度?KV Cache优化教程

Llama3-8B如何提升响应速度?KV Cache优化教程 1. 为什么Llama3-8B需要加速?推理瓶颈在哪 Meta-Llama-3-8B-Instruct 是2024年4月Meta开源的80亿参数指令微调模型,定位为“单卡可跑、商用友好”的中等规模大模型。它支持8k上下文长度&#x…

作者头像 李华