news 2026/2/22 13:16:36

小白也能懂的开机启动配置,测试镜像手把手教学

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白也能懂的开机启动配置,测试镜像手把手教学

小白也能懂的开机启动配置,测试镜像手把手教学

1. 为什么需要开机自动运行脚本?

你有没有遇到过这种情况:每次给设备通电后,都得手动打开终端、输入命令,才能让程序跑起来?比如你在做一个智能小车项目,或者一个数据采集系统,总不能每次都守在机器旁边点几下吧。

这时候,“开机自动运行脚本”就派上大用场了。它就像手机里的“自启应用”,只要一通电,你的程序就能自动开始工作,完全不用人工干预。

本文将带你一步步完成一个测试开机启动脚本的完整流程,使用的是专为此场景准备的测试镜像。整个过程不需要你懂太多Linux底层知识,跟着做就能成功。

2. 理解两种常见的开机启动方式

2.1 桌面环境下的自启(适合有界面的应用)

如果你的系统会加载图形桌面(比如树莓派默认的Raspberry Pi OS),最简单的办法是把程序加到“开机自启”列表里。

这个位置通常在:

~/.config/autostart/

你可以在这个目录下创建一个.desktop文件,内容类似这样:

[Desktop Entry] Type=Application Name=MyStartupScript Exec=/home/pi/myscript.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true

这种方式的优点是简单直观,缺点也很明显——它必须等桌面完全加载完成后才会执行。而且如果脚本没有图形界面,你就看不到任何输出,虽然程序已经在后台跑了,但你根本不知道它干了啥。

2.2 终端直启模式(推荐用于无界面或调试场景)

我们更常用的方式,是让系统一启动就弹出一个终端窗口,并在里面运行我们的脚本。这样做的好处有:

  • 可以看到程序的实时输出(打印日志、报错信息等)
  • 不依赖桌面环境,更适合嵌入式设备或服务器
  • 启动时机更早,效率更高

接下来我们就用测试镜像来演示这种方案的具体操作。

3. 手把手配置开机启动终端脚本

3.1 准备工作:确认环境和路径

首先,请确保你已经部署并进入了名为“测试开机启动脚本”的镜像环境。

假设我们要运行的脚本放在以下路径:

/home/pi/test/

里面有两个文件:

  • test.py:主程序,用Python写的
  • test.sh:启动脚本,用来调用Python程序

3.2 创建 .desktop 自启文件

我们需要创建一个.desktop文件,告诉系统开机时要做什么。

执行命令:

mkdir -p ~/.config/autostart nano ~/.config/autostart/start-terminal.desktop

粘贴以下内容:

[Desktop Entry] Type=Application Name=Start Test Script Comment=Run test script in terminal at boot Exec=lxterminal --working-directory=/home/pi/test/ --command=./test.sh Terminal=false Hidden=false

保存并退出(Ctrl+O → Enter → Ctrl+X)。

这里的关键参数是:

  • --working-directory:指定终端打开时的工作目录
  • --command:指定终端启动后要运行的命令

重要提示:一定要先设置--working-directory,否则--command可能无法正确找到脚本文件。

3.3 编写启动脚本 test.sh

进入/home/pi/test/目录,创建test.sh文件:

cd /home/pi/test/ nano test.sh

写入以下内容:

#!/bin/bash echo "【系统提示】正在启动测试脚本..." echo "当前时间: $(date)" echo "工作目录: $(pwd)" python ./test.py echo "【程序结束】按任意键关闭终端..." read -n1

保存后,别忘了给脚本添加可执行权限:

chmod +x test.sh

3.4 编写测试用的 Python 脚本

继续在同一目录下创建test.py

nano test.py

写入一段简单的测试代码:

print("Hello!这是我的开机启动Python脚本") print("程序已开始运行") # 模拟一些任务 for i in range(5): print(f"处理中... 第 {i+1} 步") print("所有任务完成!")

保存即可,不需要额外权限设置,因为是由 shell 脚本调用的。

4. 实际效果验证与常见问题解决

4.1 重启系统查看效果

一切就绪后,重启设备:

sudo reboot

重启完成后,你会看到一个终端窗口自动弹出,里面显示类似这样的内容:

【系统提示】正在启动测试脚本... 当前时间: Mon Apr 5 10:23:15 CST 2025 工作目录: /home/pi/test/ Hello!这是我的开机启动Python脚本 程序已开始运行 处理中... 第 1 步 处理中... 第 2 步 ... 所有任务完成! 【程序结束】按任意键关闭终端...

这说明你的脚本已经成功实现了开机自动运行!

4.2 常见问题排查指南

问题一:终端没弹出来?

检查.desktop文件中的Exec=行是否拼写正确,尤其是lxterminal这个命令是否存在。某些轻量级系统可能使用xtermmate-terminal,可以通过以下命令查找可用终端:

ls /usr/bin/*terminal*
问题二:脚本找不到或不执行?

最常见的原因是路径错误或权限不足。请确认:

  • test.sh是否有执行权限(chmod +x test.sh
  • .desktop文件中指定的--working-directory是否准确
  • test.py文件名是否拼写一致(注意大小写)

可以用绝对路径临时测试:

Exec=lxterminal --working-directory=/home/pi/test/ --command="bash -c 'python /home/pi/test/test.py; exec bash'"

末尾的exec bash是为了让终端保持打开状态,方便查看输出。

问题三:中文乱码或字体异常?

编辑/etc/default/locale文件,确保包含以下内容:

LANG="zh_CN.UTF-8" LC_ALL="zh_CN.UTF-8"

然后安装中文字体:

sudo apt-get install fonts-wqy-zenhei

4.3 如何让它真正“静默运行”?

如果你希望程序开机自动跑,但又不想一直开着终端干扰用户,可以这样做:

修改.desktop文件中的Exec行为:

Exec=lxterminal --hide-menubar --maximize --command="./test.sh"

或者干脆去掉终端,直接后台运行:

Exec=sh -c '/home/pi/test/test.sh > /tmp/boot.log 2>&1'

这样日志会被记录到/tmp/boot.log,适合生产环境使用。

5. 进阶技巧:让脚本更健壮、更实用

5.1 添加延迟启动,避免资源冲突

有时候系统刚启动时,某些服务还没准备好(比如网络、USB设备),直接运行脚本容易失败。

可以在test.sh开头加上延时:

sleep 10 # 等待10秒再执行

或者更智能地等待网络连通:

while ! ping -c1 google.com &>/dev/null; do echo "等待网络连接..." sleep 5 done echo "网络已就绪,开始执行主程序"

5.2 记录日志便于后期分析

建议把每次运行的日志保存下来,方便排查问题:

LOGFILE="/home/pi/test/logs/run_$(date +%Y%m%d_%H%M%S).log" exec > "$LOGFILE" 2>&1 echo "【启动】系统时间: $(date)" python ./test.py echo "【结束】程序退出"

记得提前创建日志目录:

mkdir -p /home/pi/test/logs

5.3 设置开机自启的快捷开关

不想每次都改配置?可以做个“开关”脚本:

nano ~/toggle-autostart.sh

内容如下:

#!/bin/bash AUTOSTART_FILE="$HOME/.config/autostart/start-terminal.desktop" if [ -f "$AUTOSTART_FILE" ]; then rm "$AUTOSTART_FILE" echo " 已关闭开机自启" else cp /home/pi/test/start-terminal.desktop "$AUTOSTART_FILE" echo " 已开启开机自启" fi

赋予执行权限:

chmod +x ~/toggle-autostart.sh

以后只需要运行一次这个脚本,就能切换自启状态。

6. 总结:掌握核心思路比记步骤更重要

6.1 回顾关键知识点

今天我们通过“测试开机启动脚本”这个镜像,完整走了一遍从零配置开机自启的过程。重点掌握了以下几个核心点:

  • 自启原理:利用~/.config/autostart/目录下的.desktop文件实现图形化自启
  • 终端直启法:使用lxterminal --command参数让脚本在终端中可见运行
  • 路径与权限--working-directory必须设置,脚本必须有可执行权限
  • 调试技巧:通过日志输出和延迟机制提升稳定性
  • 灵活控制:可以根据需求选择“显示终端”或“后台静默运行”

6.2 下一步你可以尝试

  • 把你的实际项目(如传感器采集、摄像头监控)集成进这个启动流程
  • 使用systemd服务替代.desktop方案,实现更专业的系统级守护
  • 结合WiFi热点自动开启功能,打造真正的“通电即用”设备

只要掌握了“设置路径 → 写启动脚本 → 配置自启入口”这一套通用逻辑,无论你是做树莓派、香橙派还是其他Linux设备开发,都能轻松应对。


获取更多AI镜像

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

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

2026年中文语音识别趋势一文详解:开源ASR模型+WebUI部署成主流

2026年中文语音识别趋势一文详解:开源ASR模型WebUI部署成主流 语音识别技术正经历一场静默却深刻的变革。过去需要企业级GPU集群、专业运维团队和数周调试才能跑通的中文语音转文字流程,如今在一台普通工作站上,只需几分钟就能完成部署并投入…

作者头像 李华
网站建设 2026/2/17 6:13:23

Windows系统冗余组件深度清理指南:三步清淤法提升系统性能

Windows系统冗余组件深度清理指南:三步清淤法提升系统性能 【免费下载链接】OneDrive-Uninstaller Batch script to completely uninstall OneDrive in Windows 10 项目地址: https://gitcode.com/gh_mirrors/one/OneDrive-Uninstaller Windows系统在长期使用…

作者头像 李华
网站建设 2026/2/13 16:14:57

语音机器人集成方案:SenseVoiceSmall API接口封装实战

语音机器人集成方案:SenseVoiceSmall API接口封装实战 1. 引言:让语音理解更“懂情绪” 你有没有遇到过这样的场景?客服录音里客户语气明显不耐烦,但转写出来的文字却只是平平淡淡的“我再问一遍”,情绪信息完全丢失…

作者头像 李华
网站建设 2026/2/14 23:08:17

亲测Glyph视觉大模型,长文本理解效果惊艳实录

亲测Glyph视觉大模型,长文本理解效果惊艳实录 你有没有试过把一篇5000字的技术文档、一份带表格的财报PDF、或者一页密密麻麻的法律合同,直接丢给AI模型让它“读完并总结”? 结果往往是:模型卡住、报错“超出上下文长度”&#x…

作者头像 李华
网站建设 2026/2/21 16:10:28

医疗问诊记录自动化:医生情绪与患者反应双识别部署

医疗问诊记录自动化:医生情绪与患者反应双识别部署 在真实门诊场景中,医生一边问诊、一边书写病历、一边观察患者反应,常常顾此失彼。录音笔能录下对话,但无法自动区分“医生语速加快”是因时间紧张,还是情绪焦躁&…

作者头像 李华
网站建设 2026/2/20 10:30:48

看完就想试!YOLOv13打造智能交通检测系统

看完就想试!YOLOv13打造智能交通检测系统 YOLOv13不是一次简单迭代,而是一次视觉感知范式的跃迁。当超图计算遇上实时目标检测,它不再只是“框出物体”,而是真正理解道路场景中车辆、行人、信号灯之间的动态关联——比如识别“正…

作者头像 李华