大气金融投资企业网站模板深圳建网站开发费用
2026/4/6 7:57:21 网站建设 项目流程
大气金融投资企业网站模板,深圳建网站开发费用,中国外贸网,游戏类网页设计一键配置开机运行.sh文件#xff0c;再也不用手动操作 你是不是也遇到过这样的情况#xff1a;每次重启电脑后#xff0c;都要手动打开终端、切换到脚本目录、再执行一遍 ./xxx.sh#xff1f;重复操作不仅费时#xff0c;还容易忘记——尤其当你依赖这个脚本启动关键服务…一键配置开机运行.sh文件再也不用手动操作你是不是也遇到过这样的情况每次重启电脑后都要手动打开终端、切换到脚本目录、再执行一遍./xxx.sh重复操作不仅费时还容易忘记——尤其当你依赖这个脚本启动关键服务、同步数据、或初始化开发环境时一次遗漏就可能导致整个工作流中断。别担心这不是你的问题而是没用对方法。Linux 系统本身提供了多种可靠的开机自启机制其中最轻量、最稳定、也最适合个人开发者和测试场景的方案就是通过rc.local实现脚本自动执行。它不需要改写 systemd 单元、不涉及复杂权限管理更不会因为系统升级突然失效。只要脚本本身能跑通加进rc.local就能稳稳运行。本文将带你从零开始真正实现“一键配置”不绕弯、不踩坑、不查文档二次确认。我们会用一个真实可用的测试镜像名称为“测试开机启动脚本”作为实操载体完整走通创建脚本 → 授权 → 注册 → 验证全流程。所有命令可直接复制粘贴每一步都附带清晰说明和避坑提示。哪怕你刚接触 Linux 终端也能在 5 分钟内搞定。1. 先确认系统是否支持 rc.local不是所有 Ubuntu 版本默认启用rc.local尤其是 18.04 及之后的桌面版虽然文件存在但服务可能被禁用。所以第一步不是写脚本而是确认基础环境是否就绪。打开终端输入systemctl status rc-local如果看到类似active (exited)的状态说明已启用可以跳过本节如果显示inactive (dead)或报错Unit rc-local.service not found请继续执行以下两步修复1.1 创建并启用 rc-local 服务先检查/etc/systemd/system/rc-local.service是否存在ls /etc/systemd/system/rc-local.service若提示No such file or directory说明需要手动创建。执行以下命令sudo tee /etc/systemd/system/rc-local.service EOF [Unit] Description/etc/rc.local Compatibility ConditionPathExists/etc/rc.local [Service] Typeforking ExecStart/etc/rc.local start TimeoutSec0 StandardOutputtty RemainAfterExityes SysVStartPriority99 [Install] WantedBymulti-user.target EOF然后创建空的/etc/rc.local文件并赋予可执行权限sudo touch /etc/rc.local sudo chmod x /etc/rc.local最后启用服务sudo systemctl enable rc-local sudo systemctl start rc-local再次运行systemctl status rc-local应显示active (exited)。这一步只需做一次后续所有开机脚本都基于此服务运行。2. 编写你的开机脚本.sh 文件脚本内容完全由你控制但有三个关键原则必须遵守路径明确、权限正确、退出可靠。我们以镜像名称“测试开机启动脚本”对应的典型需求为例——比如启动一个模拟器、记录日志、或进入指定目录执行任务。2.1 创建脚本文件推荐统一放在~/scripts目录下即当前用户的主目录下的 scripts 文件夹便于管理和备份mkdir -p ~/scripts nano ~/scripts/auto_run_test.sh提示nano比vim更友好新手按CtrlO保存CtrlX退出。在编辑器中输入以下内容注意第一行必须是#!/bin/bash且不能有多余空格#!/bin/bash # 记录启动时间用于验证是否真正执行 echo [$(date %Y-%m-%d %H:%M:%S)] System booted and script started /home/$USER/startup_log.txt # 示例1创建一个测试输出文件 echo helloStartup /home/$USER/output.txt # 示例2切换到指定目录并运行程序请按实际路径修改 # cd /home/$USER/mywbc_v5_usb/build # ./sim/sim # 示例3启动一个后台服务如 Python Web 服务 # nohup python3 /home/$USER/myapp/app.py /home/$USER/app.log 21 # 必须添加这一行确保脚本正常退出 exit 0重点说明#!/bin/bash是解释器声明必须顶格、无空格、无 BOM否则脚本无法识别使用$USER而非硬编码用户名如user保证脚本在任意用户下都可复用所有路径使用绝对路径避免因开机时工作目录不确定导致失败exit 0是收尾标准动作告诉系统“执行成功”缺了可能导致rc.local后续命令不执行注释行#开头不影响运行建议保留方便日后维护。2.2 设置脚本执行权限仅保存文件还不够Linux 默认禁止.sh文件直接执行。需显式授权chmod x ~/scripts/auto_run_test.sh验证是否成功输入ls -l ~/scripts/auto_run_test.sh若看到-rwxr-xr-x其中x表示可执行说明权限已生效。3. 将脚本注册为开机任务现在脚本已就绪下一步是让它在每次开机时自动运行。我们通过修改/etc/rc.local实现——这是 Linux 传统且兼容性最强的方式。3.1 编辑 rc.local 文件sudo nano /etc/rc.local文件默认内容类似这样不同版本略有差异#!/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. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing.你需要在# By default this script does nothing.这一行之后、exit 0之前插入你的脚本调用命令。推荐写法如下# Start custom startup script cd /home/$USER/scripts ./auto_run_test.sh注意事项不要用sudo sh auto_run_test.sh——rc.local本身以 root 权限运行无需再 sudocd切换路径后再执行比写绝对路径更清晰、更易维护务必确保exit 0仍在文件末尾且是最后一行前面不能有空行。保存并退出CtrlO→Enter→CtrlX。3.2 验证 rc.local 文件格式执行以下命令检查语法是否合法sudo /etc/rc.local如果没有任何报错且看到startup_log.txt或output.txt已生成说明配置正确。如果有报错如Permission denied或No such file请回头检查路径、权限、#!/bin/bash是否写错。4. 测试与验证不重启也能快速确认很多人误以为必须重启才能验证其实大可不必。rc.local本质就是一个 shell 脚本我们可以手动模拟开机执行流程快速定位问题。4.1 手动触发一次sudo /etc/rc.local等待几秒后检查结果cat /home/$USER/startup_log.txt cat /home/$USER/output.txt如果看到时间戳和helloStartup说明脚本已能正常运行如果报错请根据错误信息精准修正常见问题见第 5 节。4.2 检查日志确认执行时机rc.local在多用户模式末尾执行可通过 journalctl 查看其运行记录sudo journalctl -u rc-local --since 1 hour ago | grep -i auto_run若看到类似Started /etc/rc.local Compatibility和脚本输出证明它确实在开机阶段被调用。5. 常见问题与解决方案真实踩坑总结在上百次实测中以下问题是新手最高频的“卡点”我们为你提前打包解决问题现象根本原因一招解决脚本不执行startup_log.txt为空rc.local中缺少exit 0或位置不对打开/etc/rc.local确认exit 0是倒数第二行且前面无空行报错Permission denied脚本文件未加x权限或rc.local自身无执行权sudo chmod x /etc/rc.localchmod x ~/scripts/auto_run_test.sh脚本执行了但cd切换失败或程序找不到使用了相对路径如./sim/sim而rc.local当前目录是/全部改用绝对路径例如/home/$USER/mywbc_v5_usb/build/sim/simoutput.txt生成了但内容为空或乱码脚本中用了中文引号“”而非英文引号全部替换为英文标点Linux 不识别中文符号重启后仍不生效rc-local服务未启用或 Ubuntu 版本禁用了该服务执行sudo systemctl enable --now rc-local强制启用额外提醒如果你的脚本需要访问图形界面如弹窗、打开浏览器rc.local无法满足——它运行在无图形会话的后台。此时应改用用户级 autostart如~/.config/autostart/但本文聚焦“纯终端任务”不展开。6. 更轻量的备选方案追加到 /etc/profile适合单用户简单任务如果只是想让某个命令在每次登录终端时自动运行比如设置环境变量、启动代理且你只用一个用户、不依赖 root 权限那么修改/etc/profile是更简单的选择。注意/etc/profile影响所有用户如只为当前用户请改用~/.bashrc。执行echo # Auto-run on login | sudo tee -a /etc/profile echo cd ~/scripts ./auto_run_test.sh | sudo tee -a /etc/profile这样每次你打开新终端窗口脚本就会自动执行。但它不是真正的“开机启动”不随系统启动只随终端登录适合调试阶段快速验证逻辑。7. 总结你已经掌握的不仅是脚本更是自动化思维回顾整个过程你其实完成了一次典型的 Linux 自动化闭环定义目标让.sh文件开机自动运行选择工具rc.local—— 简单、稳定、跨版本兼容编写脚本遵循路径、权限、退出三原则注册任务通过标准系统服务注入验证闭环不依赖重启手动触发即可确认效果。这背后的能力远不止于“省一次手动点击”。它意味着你可以把重复性操作封装成可复用的单元把环境初始化变成一键交付把故障恢复变成自动重试。无论是部署 AI 镜像、启动本地大模型服务还是定时拉取训练数据这套方法论都通用。现在你的“测试开机启动脚本”镜像已经准备就绪。下次重启它会安静地在后台完成所有设定——而你只需要打开终端查看output.txt然后喝一口咖啡。--- **获取更多AI镜像** 想探索更多AI镜像和应用场景访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_sourcemirror_blog_end)提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询