news 2026/2/10 11:00:51

极速上手:5个命令完成整个开机脚本配置流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
极速上手:5个命令完成整个开机脚本配置流程

极速上手:5个命令完成整个开机脚本配置流程

在现代 Linux 系统中,自动化任务的启动管理是系统运维和应用部署的关键环节。传统的rc.local或 SysVinit 脚本方式虽然简单,但已逐渐被更强大、标准化的systemd所取代。本文将带你通过5 个核心命令,快速完成一个开机启动脚本的完整配置流程,适用于 Ubuntu、CentOS、Debian 等主流发行版。

文章聚焦于systemd方式——这是当前 Linux 发行版的标准服务管理机制,具备依赖控制、日志集成、自动重启等高级功能,适合生产环境使用。


1. 准备启动脚本并设置权限

首先,我们需要编写一个将在系统启动时执行的脚本,并确保其具备可执行权限。

1.1 创建脚本文件

我们将脚本放置在/usr/local/bin/目录下,这是一个推荐用于本地自定义脚本的位置。

sudo tee /usr/local/bin/my_startup_script.sh > /dev/null << 'EOF' #!/bin/bash # 简单的开机启动测试脚本 LOG_FILE="/var/log/my_startup_script.log" echo "$(date): 开机脚本开始执行" >> $LOG_FILE # 在此处添加你的实际命令 # 示例:启动某个后台服务或初始化任务 echo "$(date): 开机脚本执行完毕" >> $LOG_FILE exit 0 EOF

该脚本会在系统启动时记录时间戳到日志文件,便于后续验证是否成功运行。

1.2 设置执行权限

Linux 要求脚本具有执行权限才能被调用:

sudo chmod +x /usr/local/bin/my_startup_script.sh

重要提示:务必使用绝对路径调用命令(如/bin/echo),因为系统启动时的环境变量可能不完整。


2. 创建 systemd 服务单元文件

systemd使用.service单元文件来定义如何运行和管理服务。我们创建一个简洁的服务配置,使其在多用户模式下随系统启动。

执行以下命令创建服务文件:

sudo tee /etc/systemd/system/my_script.service > /dev/null << 'EOF' [Unit] Description=我的开机启动脚本 After=network.target network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/my_startup_script.sh RemainAfterExit=yes User=root [Install] WantedBy=multi-user.target EOF

2.1 配置项解析

  • After=network.target: 表示该服务在网络服务启动后运行,适用于需要网络连接的任务。
  • Type=oneshot: 适用于一次性执行的脚本,执行完成后即退出,不会作为守护进程持续运行。
  • RemainAfterExit=yes: 告诉systemd即使进程退出,服务状态仍视为“激活”。
  • User=root: 指定以 root 用户身份运行(根据需求可改为普通用户)。
  • WantedBy=multi-user.target: 表示在标准多用户文本模式下启用此服务。

3. 重载 systemd 配置并启用服务

此时,新的服务单元文件已被写入系统目录,但systemd尚未加载它。我们需要通知systemd重新读取所有配置。

sudo systemctl daemon-reload

这一步是必须的,否则后续操作会失败。

接着,启用服务以实现开机自启:

sudo systemctl enable my_script.service

输出应为:

Created symlink /etc/systemd/system/multi-user.target.wants/my_script.service → /etc/systemd/system/my_script.service.

表示已成功创建符号链接,服务将在下次启动时自动运行。


4. 立即启动服务进行测试

为了避免等待重启来验证效果,我们可以手动立即启动该服务:

sudo systemctl start my_script.service

然后检查其运行状态:

sudo systemctl status my_script.service

正常输出应包含:

● my_script.service - 我的开机启动脚本 Loaded: loaded (/etc/systemd/system/my_script.service; enabled; vendor preset: enabled) Active: active (exited) since ...

如果显示active (exited),说明脚本已成功执行。


5. 查看日志确认执行结果

最后一步是验证脚本内容是否真正被执行。由于我们在脚本中指定了日志路径,可以直接查看日志文件:

cat /var/log/my_startup_script.log

预期输出类似:

Mon Apr 5 10:00:00 UTC 2025: 开机脚本开始执行 Mon Apr 5 10:00:00 UTC 2025: 开机脚本执行完毕

此外,也可以使用journalctl查看systemd捕获的标准输出(如果有):

sudo journalctl -u my_script.service --since "1 hour ago"

6. 总结

通过以上5 个命令,我们完成了从脚本创建到开机自启的全流程配置:

  1. tee /usr/local/bin/...—— 创建并写入脚本
  2. chmod +x ...—— 赋予执行权限
  3. tee /etc/systemd/system/...—— 定义 systemd 服务
  4. systemctl daemon-reload && enable—— 加载配置并启用开机启动
  5. startstatus—— 测试运行与状态检查

这套方法基于systemd,具备高可靠性、良好的日志支持和灵活的依赖管理能力,是现代 Linux 系统中最推荐的开机脚本配置方式。

实践建议

  • 避免使用root运行非必要脚本:若无需特权操作,请创建专用用户并在User=中指定。
  • 始终记录日志:无论是重定向输出还是使用logger,日志是排查问题的核心依据。
  • 测试先行:每次修改后都应手动startstatus验证,再考虑重启系统。

掌握这一流程后,你可以轻松将 Python 脚本、Node.js 应用、Docker 容器初始化等任务集成进系统启动过程,实现真正的无人值守部署。


获取更多AI镜像

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

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

CV-UNet模型优化:量化加速推理的实践指南

CV-UNet模型优化&#xff1a;量化加速推理的实践指南 1. 引言 1.1 背景与挑战 在图像处理领域&#xff0c;通用抠图&#xff08;Universal Matting&#xff09;技术因其能够精确分离前景与背景而受到广泛关注。CV-UNet作为基于UNet架构改进的通用抠图模型&#xff0c;具备高…

作者头像 李华
网站建设 2026/2/8 8:59:32

分析大数据领域主数据管理的市场需求

分析大数据领域主数据管理的市场需求 关键词:主数据管理(MDM)、大数据、数据治理、数据质量、市场需求、企业数字化转型、数据孤岛 摘要:在数据量呈指数级增长的大数据时代,企业面临“数据多但用不好”的困境。主数据管理(MDM)作为解决数据孤岛、提升数据质量的核心工具…

作者头像 李华
网站建设 2026/2/7 9:15:51

GTE中文语义相似度服务实战:电商商品标题去重系统

GTE中文语义相似度服务实战&#xff1a;电商商品标题去重系统 1. 引言 1.1 业务场景描述 在电商平台中&#xff0c;商品标题是用户搜索和推荐系统的核心输入之一。然而&#xff0c;由于商家运营习惯、平台入驻门槛低等原因&#xff0c;大量重复或高度相似的商品标题频繁出现…

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

深度剖析时序逻辑电路在数字系统中的核心作用

时序逻辑电路&#xff1a;数字系统中的“大脑节拍器”你有没有想过&#xff0c;为什么你的手机能在按下屏幕的瞬间响应触控&#xff0c;耳机里的音乐不会断断续续&#xff0c;CPU能一条接一条地执行指令而不乱序&#xff1f;这些看似理所当然的操作背后&#xff0c;其实都依赖一…

作者头像 李华
网站建设 2026/2/8 19:02:03

游戏翻译工具终极指南:轻松实现跨语言游戏本地化

游戏翻译工具终极指南&#xff1a;轻松实现跨语言游戏本地化 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在当今全球化的游戏市场中&#xff0c;游戏翻译和本地化工具已经成为玩家突破语言障碍的关键利…

作者头像 李华
网站建设 2026/2/4 5:14:49

LeagueAkari完整指南:如何用5个简单步骤提升你的游戏效率

LeagueAkari完整指南&#xff1a;如何用5个简单步骤提升你的游戏效率 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为…

作者头像 李华