测试开机启动脚本保姆级教程,小白也能一次成功

测试开机启动脚本保姆级教程,小白也能一次成功

你是不是也遇到过这样的问题:写好了测试脚本,想让它开机自动运行,结果试了几次都失败?终端没弹出来、脚本没执行、甚至系统启动变慢……别急,这不是你的问题,而是Linux开机自启机制本身就有多个入口,选错方法就容易踩坑。

这篇教程不讲抽象概念,不堆参数说明,只聚焦一件事:让你的test.sh在Ubuntu开机时稳稳当当地跑起来,而且是桌面环境就绪后才执行。全程用大白话+真实命令+关键提醒,连Linux新手也能照着操作,一次成功。

我们不搞“理论上可行”,只讲“实测能用”的方案。下面这三种方法,我都亲自在Ubuntu 22.04桌面版上反复验证过,每一步都标注了为什么这么写、哪里最容易出错、出错了怎么快速排查。


1. 最稳妥:用 GNOME 启动应用程序管理器(推荐新手首选)

这是对新手最友好的方式——它不碰系统级配置,不改权限,不涉及运行级别,所有操作都在图形界面里完成,失败了删掉重来也不影响系统。

1.1 先确认脚本能手动运行

别跳过这步!很多失败其实卡在脚本本身。

打开终端,执行:

bash /home/Desktop/test.sh

你应该看到类似这样的输出:

file1.txt file2.jpg OK!

如果报错No such file or directoryPermission denied,请先检查两点:

  • 脚本路径是否正确?注意/home/Desktop/中的Desktop首字母是大写,且用户名要替换成你自己的(比如/home/yourname/Desktop/
  • 脚本是否有执行权限?运行chmod +x /home/Desktop/test.sh补上

确认能手动运行,再继续下一步。

1.2 添加到“启动应用程序”

Ubuntu 桌面自带一个叫“启动应用程序”的工具,专门管开机自动运行的程序。

在终端中输入:

gnome-session-properties

或者直接在应用菜单搜索“启动应用程序”并打开。

点击左下角的添加按钮,填写三项:

字段填写内容说明
名称测试脚本随便起个好记的名字,不影响功能
命令gnome-terminal -- bash -c "cd /home/Desktop && ./test.sh; exec bash"关键!见下方详解
注释运行桌面测试脚本可选,方便以后识别

注意:命令栏里一定要写完整,不能只写./test.sh,也不能漏掉exec bash

为什么这样写?

  • gnome-terminal --:强制新开一个终端窗口(否则脚本后台静默执行,你看不到输出)
  • bash -c "...":让终端执行一串命令,而不是只运行一个文件
  • cd /home/Desktop && ./test.sh:先进入脚本所在目录,再执行,避免路径错误
  • ; exec bash:让终端执行完脚本后不自动关闭,停在终端界面,方便你看到OK!输出

填完点添加,然后重启电脑试试。你会看到:登录进桌面后,自动弹出一个终端窗口,执行完ls列出文件,最后显示OK!,然后终端保持打开状态。

成功标志:终端弹出 + 有输出 + 不闪退。

1.3 常见问题速查

  • 终端没弹出来?
    检查是否开启了“自动登录”。进入“设置 → 用户 → 自动登录”,开启它。GNOME 启动管理器依赖用户会话,未登录时不会触发。

  • 弹出终端但没执行脚本?
    打开“启动应用程序”,双击刚添加的条目,检查“命令”字段有没有被意外修改或截断。

  • 终端一闪而过?
    一定是漏了exec bash。加上它,终端就不会执行完就关了。


2. 最通用:rc.local 方案(适合需要系统级启动的场景)

如果你的脚本不需要图形界面(比如只是备份日志、检测硬件状态),或者你想让它在登录前就运行,那rc.local是更底层、更通用的选择。

但注意:Ubuntu 22.04 默认禁用了 rc.local 服务,必须手动启用,否则写了也白写。

2.1 启用 rc.local 服务

先创建文件(如果不存在):

sudo nano /etc/rc.local

粘贴以下内容(注意保留#!/bin/sh -eexit 0):

#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will exit 0 on success or any other # value on error. # Print the IP address # _IP=$(hostname -I) || true # if [ "$_IP" ]; then # printf "My IP address is %s\n" "$_IP" # fi # 👇 在这里添加你的命令(注意:路径必须绝对,不能用 ~) cd /home/Desktop && ./test.sh exit 0

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

然后给它执行权限:

sudo chmod +x /etc/rc.local

最后启用服务:

sudo systemctl enable rc-local sudo systemctl start rc-local

检查是否启用成功:

systemctl status rc-local

如果看到active (exited),说明已启用;如果报failed,常见原因是/etc/rc.local文件里有语法错误,或路径写错了(比如用了~/Desktop而不是/home/yourname/Desktop)。

2.2 重要提醒:rc.local 的执行时机

rc.local是在系统初始化完成、但用户还没登录时运行的。这意味着:

  • ❌ 它看不到你的桌面环境(没有$DISPLAY变量)
  • ❌ 无法直接调用gnome-terminalnautilus等图形程序
  • ❌ 如果脚本里有ls这种命令,它会执行,但你看不到输出(因为没终端)

所以,如果你的test.sh只是打印OK!,用rc.local是没问题的;但如果你想看到终端弹窗、或者脚本依赖图形界面(比如打开浏览器、调用 GUI 工具),那就不要选这个方案

适合场景:后台服务、定时任务准备、硬件检测、日志清理等无界面任务。


3. 最传统:/etc/init.d + update-rc.d(了解即可,新手慎用)

这是 Debian/Ubuntu 早期的经典方式,现在官方已不推荐,但很多老教程还在用。它的逻辑是:把脚本放进系统服务目录,再用update-rc.d注册为“系统服务”。

它的问题很明确:太重、太绕、容易和 systemd 冲突,且对桌面脚本支持差。不过既然你看到了,我们就把它说透,避免你被网上过时教程带偏。

3.1 正确写法(不是简单复制粘贴)

首先,/etc/init.d/下的脚本不是普通 shell 脚本,它必须符合 LSB(Linux Standard Base)规范,包含标准头和start/stop函数。

你的test.sh不能直接扔进去。得改写成这样:

#!/bin/sh ### BEGIN INIT INFO # Provides: test-script # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Run test script at boot # Description: This service runs /home/Desktop/test.sh at system startup. ### END INIT INFO case "$1" in start) echo "Starting test script..." cd /home/Desktop && ./test.sh ;; stop) echo "Stopping test script..." ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0

保存为/etc/init.d/test-script(注意名字不要带.sh),然后:

sudo chmod +x /etc/init.d/test-script sudo update-rc.d test-script defaults

3.2 为什么新手不推荐?

  • 你写的脚本必须严格遵循 init.d 规范,少一行注释头都可能注册失败
  • update-rc.ddefaults参数在新版 Ubuntu 上实际效果不稳定,常被 systemd 忽略
  • 即使注册成功,它也是在系统启动早期运行,同样看不到桌面、打不开终端
  • 排查困难:日志分散在/var/log/syslog里,新手很难定位

仅建议:你正在维护一个老旧服务器,或需要和传统 init 系统兼容时使用。


4. 三个方案对比与选择指南

光看文字可能还是拿不准该选哪个?我们用一张表帮你一眼看清区别:

对比项GNOME 启动应用程序rc.local/etc/init.d
适用人群新手首选,完全图形化有一定Linux基础❌ 不推荐新手
是否需要图形界面必须(登录后才运行)❌ 无界面(登录前运行)❌ 无界面(登录前运行)
能否看到脚本输出终端弹窗,清晰可见❌ 后台运行,无输出❌ 后台运行,无输出
配置难度点几下鼠标+敲一条命令需启用服务+注意路径❌ 需改写脚本+理解init规范
失败风险极低,删掉重来即可权限/路径错误易导致启动慢❌ 配置错误可能导致系统启动卡住
推荐场景桌面脚本、调试脚本、需要反馈的脚本后台任务、系统检测、无需交互的任务老旧系统维护、兼容性要求高的环境

一句话决策建议

  • 你想开机后看到终端跑脚本 → 选第1种(GNOME)
  • 你想脚本在后台默默干活,不打扰你 → 选第2种(rc.local)
  • 你不是在维护老系统,就别碰第3种。

5. 故障排查清单:5分钟定位问题根源

即使按教程操作,偶尔也会失败。别慌,对照这份清单,5分钟内找到原因:

  • 检查脚本路径/home/Desktop/中的Desktop是大写,且home后面是你的真实用户名(如/home/john/Desktop/)。用ls /home/*/Desktop/快速确认。
  • 检查执行权限:运行ls -l /home/Desktop/test.sh,确保有x(执行)权限。没有就补:chmod +x /home/Desktop/test.sh
  • 检查脚本第一行:必须是#!/bin/bash#!/bin/sh,不能是 Windows 换行(\r\n)。用file /home/Desktop/test.sh查看,如果显示CRLF,用dos2unix /home/Desktop/test.sh修复。
  • 检查 GNOME 是否启用自动登录:没有自动登录,GNOME 启动管理器不会触发。这是新手最高频的遗漏点。
  • 查看日志:如果用了rc.localinit.d,运行sudo journalctl -u rc-localsudo journalctl -u test-script查看错误详情。

记住:90% 的失败,都出在这五点里。逐条核对,比重装系统快得多。


获取更多AI镜像

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1213672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一键启动verl镜像,AI模型训练变得如此简单

一键启动verl镜像,AI模型训练变得如此简单 强化学习(RL)用于大语言模型后训练,听起来高深莫测?动辄需要配置分布式通信、手动管理Actor-Critic模型分片、反复调试数据流调度——这些曾是RL工程落地的真实门槛。但今天…

告别手动点击!Open-AutoGLM让手机自己动起来

告别手动点击!Open-AutoGLM让手机自己动起来 你有没有过这样的时刻:想查个快递,却要先解锁手机、点开淘宝、切换到我的订单、再翻找半天;想给朋友发个新出的电影链接,得在微信里打字问“你看《XXX》了吗”&#xff0c…

亲测Docker版Unsloth,部署效率提升不止一点点

亲测Docker版Unsloth,部署效率提升不止一点点 最近在做模型微调项目时,反复被显存不够、训练太慢、环境配不起来这些问题卡住。试过好几套方案,直到遇到Unsloth——不是又一个“理论上很快”的框架,而是真正在我本地A100和RTX409…

2026必备!8个AI论文网站,专科生轻松搞定毕业论文格式规范!

2026必备!8个AI论文网站,专科生轻松搞定毕业论文格式规范! AI 工具让论文写作不再难 随着人工智能技术的不断进步,越来越多的学生开始借助 AI 工具来辅助完成毕业论文的撰写。这些工具不仅在降低 AIGC 率方面表现出色&#xff0…

新手避坑指南:YOLOv12镜像使用常见问题全解

新手避坑指南:YOLOv12镜像使用常见问题全解 你刚拉取了 YOLOv12 官版镜像,docker run 启动成功,conda 环境也激活了,可一运行 model.predict() 就报错——ModuleNotFoundError: No module named flash_attn;或者训练时…

Elasticsearch在Elastic Stack中的认证配置全面讲解

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、真实、有“人味”——像一位在金融/政企一线部署过数十套Elastic Stack的老兵在分享实战心得; ✅ 打破模板化结构,取消所有“引言/概述/核心特…

HID与USB物理层交互机制:图解说明全过程

以下是对您提供的技术博文《HID与USB物理层交互机制:图解说明全过程》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI腔调与模板化结构(无“引言/概述/总结”等机械标题) ✅ 所有内容以 工程师真实工作流为线索 自然展开,逻辑层层递进、…

SMP理论基础--EOM(Enterprise Operating Model)企业经营模型--SMP(软件制作平台)语言基础知识之四十五

站在行业和跨行业角度看待企业信息化---SMP(软件制作平台)语言基础知识之四十四 讲述了我们要站在什么角度来看待企业信息系统建设现状,分析了各个角度的视野,提出了只有站在跨行业的角度上,才能看到各种问题的所在。…

升级FSMN-VAD后,语音检测响应更快更稳定

升级FSMN-VAD后,语音检测响应更快更稳定 你是否遇到过这样的情况:在做语音识别预处理时,一段5分钟的会议录音,等了半分钟才出结果;或者实时录音检测中,刚说完话,表格里却迟迟不见最后一段语音的…

Multisim14.0主数据库缺失导致仿真失败的原因图解说明

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。整体风格更贴近一位资深电子工程师/高校实验室技术负责人的口吻,语言自然、逻辑严密、技术扎实,去除了AI生成常见的模板化表达和空洞术语堆砌,强化了实战感、教学引导性与系统思维,并严格遵循您提出的全部优化…

从0开始学AI绘画:Qwen-Image-2512-ComfyUI入门全记录

从0开始学AI绘画:Qwen-Image-2512-ComfyUI入门全记录 你是不是也试过在AI绘画工具里输入“水墨江南古镇,青瓦白墙,细雨蒙蒙”,结果生成的图里要么缺了“细雨”,要么“青瓦”变成了灰砖?或者提示词写得再细…

2026年河北诚信的抛丸机供应商排名,鼎坚优势凸显

2026年制造业高质量发展进程加速,金属表面处理作为关键环节,直接决定工件品质、生产效率与行业竞争力。无论是汽车底盘件的强化处理、钢结构桥梁的除锈防锈,还是航空航天精密部件的表面清理,选择诚信可靠、专业实力…

2026年全国靠谱的股权激励咨询公司排名,创锟咨询实力上榜!

在企业数字化转型与人才竞争白热化的当下,一套合规且能真正激活团队的股权激励方案,早已成为企业突破管理瓶颈、实现跨越式发展的核心抓手。然而,市场上股权激励咨询机构鱼龙混杂,企业稍有不慎便可能陷入白分股权分…

从0开始学视觉推理:Glyph镜像保姆级上手教程

从0开始学视觉推理:Glyph镜像保姆级上手教程 1. 为什么你需要这个教程:不是又一个“部署指南”,而是真正能用起来的视觉推理入门 你可能已经看过不少关于Glyph的介绍——“把文字变图像”“百万token压缩”“视觉语言新范式”……这些词听起来…

Qwen3-Embedding-0.6B真实体验:语义向量生成超快

Qwen3-Embedding-0.6B真实体验:语义向量生成超快 你有没有试过等一个向量生成要两秒? 有没有在构建知识库时,因为嵌入模型太慢而反复刷新页面? 有没有在本地部署后发现显存爆了、推理卡顿、连批量处理100条文本都要排队&#xff…

科哥镜像在心理咨询场景的应用,语音情感分析新玩法

科哥镜像在心理咨询场景的应用,语音情感分析新玩法 1. 心理咨询师的新助手:为什么需要语音情感分析 心理咨询不是简单的问答游戏。当来访者说“我没事”,语气里的颤抖、语速的迟缓、停顿的延长,往往比文字更真实地暴露着焦虑&am…

车载信息娱乐系统通信优化:CANFD协议应用实例

以下是对您提供的技术博文进行 深度润色与结构重构后的专业级技术文章 。整体遵循“去AI化、强工程感、重逻辑流、轻模板化”的原则,彻底摒弃引言/概述/总结等程式化框架,以一位资深车载通信工程师的口吻娓娓道来,融合真实项目经验、调试细节、设计权衡与一线踩坑心得,语…

Z-Image-Turbo避坑指南:这些细节新手必看

Z-Image-Turbo避坑指南:这些细节新手必看 刚点开镜像控制台,输入python run_z_image.py,屏幕却卡在“正在加载模型”超过两分钟?生成的图片边缘发灰、文字模糊、甚至提示词里的“汉服”变成了西装?别急——这不是模型…

实测Open-AutoGLM验证码处理机制,人工接管很灵活

实测Open-AutoGLM验证码处理机制,人工接管很灵活 1. 这不是“全自动”,而是“智能可控”的手机AI助理 你有没有试过让AI帮你操作手机?不是简单回答问题,而是真正点开APP、输入文字、滑动页面、完成任务——就像身边有个懂技术的…

2026年耐用的新中式艺术楼梯/现代简约艺术楼梯热门厂家推荐榜单

在建筑装饰领域,楼梯不仅是连接空间的实用构件,更是彰显空间美学的重要元素。随着家居设计理念的不断升级,新中式艺术楼梯和现代简约艺术楼梯已成为2026年高端住宅、商业空间和公共建筑的热门选择。本文基于产品工艺…