news 2026/5/9 7:44:22

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

作者头像

张小明

前端开发工程师

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/5/9 2:36:43

如何实现低成本AI推理?DeepSeek-R1部署实战省60%算力开销

如何实现低成本AI推理?DeepSeek-R1部署实战省60%算力开销 你是不是也遇到过这样的问题:想跑一个能写代码、解数学题、做逻辑推理的模型,但发现动辄7B、14B的大模型一启动就吃光显存,单卡A10甚至都跑不动?更别说日常调…

作者头像 李华
网站建设 2026/4/20 11:17:20

开源小模型趋势分析:Qwen2.5为何适合边缘计算场景?

开源小模型趋势分析:Qwen2.5为何适合边缘计算场景? 1. 小模型不是“缩水版”,而是边缘智能的刚需选择 过去几年,大模型动辄百亿、千亿参数,训练成本高、部署门槛高、推理延迟长——这些特性天然与边缘场景背道而驰。…

作者头像 李华
网站建设 2026/4/28 19:48:54

Z-Image-Turbo与PixArt对比:轻量级DiT模型落地效果

Z-Image-Turbo与PixArt对比:轻量级DiT模型落地效果 1. 开箱即用的文生图新选择:Z-Image-Turbo真能跑得快又画得好? 你有没有试过等一个文生图模型加载半小时,结果生成一张图还要两分钟?或者好不容易跑起来&#xff0…

作者头像 李华
网站建设 2026/5/2 16:20:08

DeepSeek-R1-Distill-Qwen-1.5B实战:Gradio界面定制化部署

DeepSeek-R1-Distill-Qwen-1.5B实战:Gradio界面定制化部署 1. 项目背景与目标 你是不是也遇到过这种情况:手头有个不错的推理模型,但每次调用都得写代码、跑脚本,想让同事或产品团队试试看,却因为“不会搭环境”而作…

作者头像 李华
网站建设 2026/5/10 1:56:21

TurboDiffusion使用答疑:中文提示词输入注意事项详解

TurboDiffusion使用答疑:中文提示词输入注意事项详解 1. 为什么中文提示词需要特别注意? TurboDiffusion不是简单地“翻译”中文,而是通过UMT5文本编码器将中文语义深度理解后,映射到视频生成的潜在空间。很多用户反馈“明明写得…

作者头像 李华
网站建设 2026/5/1 1:18:38

Qwen3-4B部署资源不足?轻量级GPU适配方案实战优化指南

Qwen3-4B部署资源不足?轻量级GPU适配方案实战优化指南 1. 为什么Qwen3-4B在普通显卡上“跑不动”? 你是不是也遇到过这样的情况:刚下载完Qwen3-4B-Instruct-2507,满怀期待地想在本地试一试——结果torch.cuda.OutOfMemoryError直…

作者头像 李华