网站企业建设贵阳做网站需要多少钱
2026/2/9 12:54:14 网站建设 项目流程
网站企业建设,贵阳做网站需要多少钱,网站建设需求填表,企业查询系统官网天眼查网页版快速上手Ubuntu 16.04开机自启功能#xff0c;实操分享 你是不是也遇到过这样的问题#xff1a;写好了一个自动化脚本#xff0c;每次重启电脑后还得手动运行#xff1f;或者部署了一个服务#xff0c;总得登录系统后再敲命令启动#xff1f;在Ubuntu 16.04环境下#…快速上手Ubuntu 16.04开机自启功能实操分享你是不是也遇到过这样的问题写好了一个自动化脚本每次重启电脑后还得手动运行或者部署了一个服务总得登录系统后再敲命令启动在Ubuntu 16.04环境下其实完全可以让系统在开机时自动执行你的任务——不用图形界面、不依赖用户登录、真正意义上的“开机即用”。这篇文章不是照搬手册的理论堆砌而是基于一个真实可用的镜像“测试开机启动脚本”整理出的完整实操路径。我会带你从零开始一步步创建脚本、设置权限、修改系统配置最后验证效果。所有操作都在标准Ubuntu 16.04桌面版环境下验证通过不需要额外安装软件不依赖systemd高级配置也不需要理解复杂的init机制——你只需要会复制粘贴、会敲几条基础命令就能搞定。整篇内容聚焦一个目标让你在30分钟内让自己的脚本稳稳当当地在系统启动完成后自动跑起来。过程中我会指出哪些步骤容易出错、哪些写法看似合理实则无效、哪些细节决定成败。没有术语轰炸只有可落地的操作和看得见的结果。1. 创建可执行的启动脚本脚本是整个流程的起点也是最容易被忽略的一环。很多人以为随便写个.sh文件就能用结果发现开机后什么都没发生。关键在于两点路径要明确、内容要健壮。我们推荐把脚本放在一个固定且易管理的位置比如/home/用户名/Documents/scripts/。假设你的用户名是user请替换成你实际的用户名先创建目录和脚本文件mkdir -p /home/user/Documents/scripts nano /home/user/Documents/scripts/auto_run_test.sh在编辑器中输入以下内容注意不要直接复制网页上的引号全部使用英文半角符号#!/bin/bash # 记录启动时间便于后续验证 echo Startup at $(date) /home/user/Documents/scripts/output.txt # 进入指定工作目录示例路径请按需修改 cd /home/user/mywbc_v5_usb/build 2/dev/null || echo Warning: build directory not found /home/user/Documents/scripts/output.txt # 执行你的主程序此处为示例替换为你的真实命令 if [ -x ./sim/sim ]; then ./sim/sim /home/user/Documents/scripts/sim_output.log 21 echo Sim process started with PID $! /home/user/Documents/scripts/output.txt else echo Error: sim executable not found /home/user/Documents/scripts/output.txt fi # 再次记录完成状态 echo Startup completed /home/user/Documents/scripts/output.txt这段脚本比参考博文中的版本更实用原因有三使用绝对路径写入日志避免因当前工作目录不确定导致文件写入失败加入了2/dev/null和||逻辑判断防止目录不存在时脚本中断对可执行文件做了存在性检查并后台运行避免阻塞启动流程每一步都追加日志方便后续排查问题。保存并退出nano中按CtrlO→Enter→CtrlX。2. 设置脚本执行权限Linux不会随意执行任何文本文件必须显式赋予执行权限。这一步看似简单但权限设错会导致脚本静默失败——既不报错也不运行。执行以下命令chmod x /home/user/Documents/scripts/auto_run_test.sh这里推荐用x而不是777。777虽然粗暴有效但存在安全风险它让所有用户都能读、写、执行该脚本。而x只添加执行权限保留原有读写权限更符合最小权限原则。验证是否设置成功ls -l /home/user/Documents/scripts/auto_run_test.sh你应该看到输出中包含-rwxr--r--或类似字段其中的x表示执行权限已生效。3. 启用并配置rc.local机制Ubuntu 16.04默认使用System V init兼容模式rc.local是官方支持的、最轻量级的开机自启入口。但它默认处于禁用状态需要手动激活。首先确认rc.local文件是否存在ls -l /etc/rc.local如果提示“No such file”说明系统未生成该文件。此时需手动创建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. # Start custom script cd /home/user/Documents/scripts ./auto_run_test.sh exit 0关键点说明第一行#!/bin/sh -e必须严格匹配-e参数确保脚本遇到错误时立即退出避免后续命令误执行cd命令必须写在调用脚本之前否则脚本内部的相对路径会失效直接用./auto_run_test.sh调用不要加sudo——rc.local本身以root权限运行加sudo反而可能因环境变量缺失导致失败exit 0是强制要求缺了会导致系统启动卡在最后阶段。保存后还要给rc.local赋予执行权限sudo chmod x /etc/rc.local重要提醒有些教程建议先改权限再编辑这是误区。正确的顺序是——先创建/编辑内容再统一赋权。因为chmod 777等宽泛权限在生产环境中应避免而x足够且安全。4. 验证rc.local服务状态在Ubuntu 16.04中rc.local由systemd托管为一个服务单元。即使你正确配置了文件如果对应服务未启用脚本依然不会运行。检查服务状态sudo systemctl status rc-local如果显示inactive (dead)或not-found说明服务未启用。启用它sudo systemctl enable rc-local sudo systemctl start rc-local启用后再次检查状态应显示active (exited)。这表示rc.local机制已就绪下次启动时将自动触发。5. 手动模拟启动流程并调试别急着重启先在当前会话中模拟一次rc.local的执行过程快速验证脚本是否能正常工作sudo /etc/rc.local执行后检查日志文件cat /home/user/Documents/scripts/output.txt你应该看到类似这样的内容Startup at Mon Jun 10 14:22:35 CST 2024 Sim process started with PID 12345 Startup completed如果出现错误提示如“build directory not found”说明路径配置有误返回第1步修正如果文件为空检查脚本权限和rc.local内容是否拼写错误。这个手动验证步骤能帮你节省大量重启时间是高效排错的关键习惯。6. 重启验证与常见问题处理确认手动执行无误后执行最终验证sudo reboot系统重启后等待约1分钟给后台进程留出执行时间然后打开终端查看日志cat /home/user/Documents/scripts/output.txt如果看到完整的启动日志说明配置成功。你还可以检查你的主程序是否正在运行ps aux | grep sim若看到sim进程恭喜你开机自启已稳定运行。常见问题及解决方案问题1重启后output.txt文件不存在或为空原因脚本路径错误或rc.local中cd命令指向的目录不存在。解决在rc.local中添加调试语句echo Current dir: $(pwd) /home/user/Documents/scripts/debug.log ls -l /home/user/Documents/scripts/ /home/user/Documents/scripts/debug.log问题2脚本执行了但主程序没启动原因主程序依赖图形界面、环境变量或特定用户权限。解决在脚本开头显式加载环境source /home/user/.profile export DISPLAY:0问题3系统启动变慢或卡在紫色屏幕原因rc.local中脚本未及时退出或缺少exit 0。解决检查/etc/rc.local末尾是否有exit 0并将耗时操作改为后台运行加。问题4某些Ubuntu 16.04精简版没有rc.local替代方案编辑/etc/profile仅适用于用户登录后启动非纯开机启动echo cd /home/user/Documents/scripts ./auto_run_test.sh | sudo tee -a /etc/profile但请注意此方式依赖图形会话登录无法实现真正的无人值守启动。7. 进阶建议让自启更可靠、更可控完成基础配置只是第一步。在实际工程中你可能还需要这些能力添加启动超时保护防止脚本异常卡死影响系统启动在rc.local中调用脚本时加上超时timeout 30s ./auto_run_test.sh实现服务化管理可选如果你的脚本需要频繁启停或查看状态可以将其注册为systemd服务sudo nano /etc/systemd/system/auto-run-test.service内容如下[Unit] DescriptionAuto Run Test Script Aftermulti-user.target [Service] Typeoneshot ExecStart/home/user/Documents/scripts/auto_run_test.sh RemainAfterExityes [Install] WantedBymulti-user.target启用服务sudo systemctl daemon-reload sudo systemctl enable auto-run-test.service日志集中管理将脚本输出重定向到系统日志便于统一查看logger -t auto-run-test Starting sim process ./sim/sim 21 | logger -t auto-run-test这些进阶技巧不是必需的但当你从“能用”迈向“好用”“稳定用”时它们会成为关键支撑。8. 总结一条清晰、可复用的开机自启路径回顾整个流程我们构建了一条从脚本创建到稳定运行的完整链路脚本设计强调路径绝对化、错误可感知、日志可追溯拒绝“黑盒式”执行权限设置坚持最小必要原则用x代替777兼顾安全与可用rc.local配置遵循官方规范确保兼容性和可维护性验证环节采用手动模拟先行策略大幅降低调试成本问题处理提供具体现象→根本原因→可操作解法的闭环思路。Ubuntu 16.04虽已进入维护周期但在嵌入式开发、教学实验、老旧设备升级等场景中仍有广泛使用。掌握这套开机自启方法不仅能解决当前需求更能为你理解Linux启动流程打下实践基础。现在你的脚本已经准备好迎接每一次开机。下一步你可以把它扩展成监控服务、数据采集代理或是自动化测试平台——起点虽小但每一步都踏在真实的工程节奏上。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

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

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

立即咨询