哪里有南宁网站建设大庆油田内网主页网址
2026/4/7 10:20:38 网站建设 项目流程
哪里有南宁网站建设,大庆油田内网主页网址,外贸网站建设哪里有,网站备案查询到什么资料测试开机启动脚本真实体验#xff1a;轻松实现后台自动化 在日常使用Linux系统的过程中#xff0c;我们常常会遇到一些需要“开机自动运行”的任务场景——比如启动某个监控服务、自动挂载磁盘、运行AI推理脚本#xff0c;或者定时拉取数据。如果每次重启后都要手动执行一遍…测试开机启动脚本真实体验轻松实现后台自动化在日常使用Linux系统的过程中我们常常会遇到一些需要“开机自动运行”的任务场景——比如启动某个监控服务、自动挂载磁盘、运行AI推理脚本或者定时拉取数据。如果每次重启后都要手动执行一遍命令不仅麻烦还容易遗漏。最近我在使用一个名为“测试开机启动脚本”的镜像环境时正好需要配置一个后台自动化任务。经过实际操作和多次验证我总结出了一套稳定、简单且适用于大多数Ubuntu系统的开机自启方案。本文将结合真实使用体验手把手带你完成整个流程确保你也能一次成功。1. 明确目标与使用场景我的实际需求是什么在这个镜像环境中我希望实现以下功能系统开机后自动运行一个自定义Shell脚本脚本执行某些初始化操作如输出日志、进入指定目录、启动程序整个过程无需人工干预后台静默运行即使断电重启任务依然能自动触发这其实是一个非常典型的轻量级自动化需求广泛应用于服务器部署、边缘设备管理、开发测试环境搭建等场景。为什么选择rc.local方式虽然现代Linux系统推荐使用systemd服务来管理开机任务但对于新手或临时性任务来说rc.local方式更直观、易懂、调试方便。尤其在一些预置镜像中rc.local往往已经被保留兼容适合快速上手。2. 创建并测试自定义启动脚本### 2.1 编写Shell脚本文件首先在系统中创建一个专门存放脚本的目录并新建我们的启动脚本。mkdir -p /home/user/Documents/scripts cd /home/user/Documents/scripts touch auto_run_test.sh用文本编辑器打开这个文件nano auto_run_test.sh填入如下内容#!/bin/bash echo helloStartup ./output.txt cd /home/user/mywbc_v5_usb/build echo EnterBuildDir ./output.txt ./sim/sim echo AfterSim ./outputend.txt关键点说明#!/bin/bash这是所有Shell脚本的标准开头告诉系统用bash解释器执行。每一行都是普通命令你可以替换成任何你想自动运行的操作比如启动Python脚本、运行Docker容器、发送通知等。输出重定向是为了验证脚本是否被执行——只要看到文件生成就说明成功了。### 2.2 给脚本添加可执行权限Linux默认不允许随意执行脚本必须显式授权。sudo chmod x auto_run_test.sh建议做法不要使用777这种过于宽松的权限。x表示添加执行权限已经足够安全又有效。你可以通过以下命令验证是否设置成功ls -l auto_run_test.sh如果看到类似-rwxr-xr-x的权限标识说明可以执行。### 2.3 手动运行一次确认无误在加入开机启动前务必先手动运行测试./auto_run_test.sh检查当前目录下是否生成了output.txt和outputend.txt文件并查看内容是否正确cat output.txt cat outputend.txt只有当脚本能独立正常运行时才适合放入开机流程。3. 配置 rc.local 实现开机自启### 3.1 检查 rc.local 是否存在并不是所有Ubuntu版本都默认启用rc.local。我们需要先确认它是否存在ls /etc/rc.local如果提示“No such file or directory”说明你需要手动创建。但大多数情况下该文件是存在的只是可能没有启用。### 3.2 确保 rc.local 可写为了让我们可以修改内容先赋予写权限sudo chmod w /etc/rc.local注意这里也不建议直接chmod 777w更加精准且安全。### 3.3 编辑 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. # 添加你的命令在这里 cd /home/user/Documents/scripts sh auto_run_test.sh exit 0重点注意事项必须保证exit 0在最后一行否则系统可能卡住。脚本路径一定要写绝对路径避免因工作目录不同导致失败。使用sh调用脚本更稳妥兼容性更好。### 3.4 设置 rc.local 可执行为了让系统真正执行这个脚本还需要给它加上执行权限sudo chmod x /etc/rc.local4. 替代方案适用于无 rc.local 的系统有些新版Ubuntu如18.04以后默认不再包含rc.local或者其服务未启用。这时我们可以采用另一种简单方法——修改/etc/profile。### 4.1 修改 profile 文件sudo nano /etc/profile滚动到底部在最后一行添加if [ -f /home/user/Documents/scripts/auto_run_test.sh ]; then sh /home/user/Documents/scripts/auto_run_test.sh fi原理说明/etc/profile是用户登录时加载的全局环境配置文件当你通过图形界面或终端登录时这段代码就会被执行适合那些不需要“系统级立即启动”、而是在“用户登录后自动运行”的场景⚠️ 注意这种方式依赖于用户登录如果你希望无人值守运行如服务器仍建议使用systemd或恢复rc.local服务。5. 重启验证效果一切准备就绪现在进行最终测试。sudo reboot系统重启后等待几十秒让脚本有时间执行然后检查目标目录ls /home/user/Documents/scripts/ cat /home/user/Documents/scripts/outputend.txt如果能看到输出AfterSim并且相关程序已启动那就说明——你的开机自动化已经成功了6. 常见问题与解决方案### 6.1 脚本没执行从哪里排查检查权限ls -l /etc/rc.local ls -l /home/user/Documents/scripts/auto_run_test.sh确保都有执行权限x。查看日志sudo tail -f /var/log/syslog | grep rc.local如果rc.local启动失败通常会在日志中报错。确认 rc-local.service 是否启用systemctl status rc-local如果显示 inactive需要用以下命令启用sudo systemctl enable rc-local### 6.2 路径问题导致脚本找不到文件很多脚本在手动运行时正常但开机时报错“no such file or directory”。这是因为工作目录不一致。✅ 解决办法在脚本开头固定工作目录#!/bin/bash cd $(dirname $0) # 切换到脚本所在目录这样无论从哪调用都会以脚本自身位置为基准路径。### 6.3 如何让脚本后台运行不阻塞系统启动如果你的脚本会持续运行比如监听服务直接放在rc.local中会导致系统启动卡住。✅ 正确做法使用nohup放入后台nohup sh /home/user/Documents/scripts/auto_run_test.sh /tmp/startup.log 21 这样既不会阻塞启动过程又能记录日志便于排查。7. 进阶建议向 systemd 平滑过渡虽然rc.local简单好用但在生产环境中更推荐使用systemd来管理开机任务。它支持依赖控制、日志追踪、状态监控等功能。### 7.1 创建一个简单的 systemd 服务创建服务文件sudo nano /etc/systemd/system/my-startup-script.service内容如下[Unit] DescriptionCustom Startup Script Aftermulti-user.target [Service] Typeoneshot ExecStart/bin/sh /home/user/Documents/scripts/auto_run_test.sh RemainAfterExityes [Install] WantedBymulti-user.target启用并启动服务sudo systemctl daemon-reexec sudo systemctl enable my-startup-script.service下次重启时系统会自动按顺序执行该服务。优势更标准、更可控可通过systemctl status my-startup-script查看运行状态日志统一归集到journalctl8. 总结通过本次对“测试开机启动脚本”镜像的真实使用体验我完整走通了从脚本编写、权限设置、rc.local配置到最终验证的全流程。这套方法不仅适用于个人开发环境也可以作为小型项目的自动化基础。回顾关键步骤编写脚本并测试可用性设置合理权限x修改/etc/rc.local添加调用命令确保rc.local自身可执行重启验证结果备选方案使用/etc/profile或转向systemd无论你是想自动启动AI模型、运行爬虫、还是维护一个嵌入式设备掌握这项技能都能大幅提升效率和稳定性。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

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

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

立即咨询