news 2026/4/16 15:55:54

适合新手的自启方法,测试脚本几分钟就能配好

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
适合新手的自启方法,测试脚本几分钟就能配好

适合新手的自启方法,测试脚本几分钟就能配好

在日常使用 Linux 系统的过程中,我们常常会遇到这样的需求:希望某个脚本或服务在系统开机时自动运行,比如监控程序、日志收集脚本,或者一些自定义的初始化任务。对于刚接触 Linux 的朋友来说,“开机自启”听起来可能有点复杂,但其实只要掌握正确的方法,配置一个开机启动脚本并不难。

本文将带你一步步完成一个简单、可靠、适用于 CentOS 和 Ubuntu 系统的开机自启脚本配置流程。整个过程不需要复杂的命令,也不涉及 systemd 的高级配置,特别适合新手快速上手。你只需要准备好自己的脚本,按照步骤操作,几分钟内就能让脚本随系统自动运行。

1. 准备你的启动脚本

首先,你需要有一个想要开机运行的脚本。为了方便演示,我们假设这个脚本叫做mytest.sh,它位于/etc/init.d/目录下。

你可以用任意文本编辑器创建它:

sudo nano /etc/init.d/mytest.sh

写入一个简单的测试内容,例如:

#!/bin/bash # 简单的日志输出脚本 echo "【$(date)】系统已启动,自定义脚本 mytest.sh 正在运行" >> /var/log/mytest.log

保存后,记得给脚本添加可执行权限:

sudo chmod +x /etc/init.d/mytest.sh

现在,这个脚本已经可以手动执行了。你可以运行下面这条命令来测试是否正常工作:

sudo /etc/init.d/mytest.sh

然后查看日志文件确认输出:

cat /var/log/mytest.log

如果能看到时间戳和提示信息,说明脚本本身没有问题,接下来就可以让它开机自动运行了。

2. 查看当前系统的运行级别

Linux 系统有不同的“运行级别”(runlevel),它决定了系统启动后进入哪种工作模式。不同的运行级别对应不同的服务加载集合。我们要做的,就是把我们的脚本注册到正确的运行级别中。

先查看当前系统的运行级别:

runlevel

执行后你会看到类似这样的输出:

N 5

这里的5表示系统当前处于运行级别 5。通常情况下:

  • 运行级别 3:多用户文本模式(无图形界面)
  • 运行级别 5:多用户图形模式(带 GUI)

大多数桌面版或服务器启用图形界面的系统默认是级别 5。因此,我们需要将脚本链接到/etc/rc5.d/目录下。

小知识补充

  • /etc/init.d/是存放所有服务启动脚本的目录。
  • /etc/rcX.d/(如 rc5.d)是各个运行级别对应的“启动链接目录”,里面的文件大多是指向/etc/init.d/脚本的软链接。
  • S开头的链接表示 Startup(启动),以K开头的表示 Kill(关闭)。

3. 进入对应的 rcX.d 目录

既然当前运行级别是 5,我们就需要进入/etc/rc5.d/目录:

cd /etc/rc5.d/

进入之后,可以用ls命令看看里面有哪些已有的启动项:

ls

你会看到一堆像S01sysstatS10rsyslogS99network这样的文件名。它们都是软链接,指向/etc/init.d/下的真实脚本。

注意命名规则:

  • S表示 Start(开机时启动)
  • 后面两位数字代表启动顺序,数值越大越晚启动
  • 名字越靠后,说明依赖的服务越多(比如网络、数据库等)

所以如果你的脚本依赖其他服务(比如 MySQL 或 Nginx),建议设置一个较大的序号,比如 90 以上,确保那些服务已经准备就绪。

4. 为脚本创建软链接

接下来,我们要在/etc/rc5.d/中为我们的脚本创建一个以S开头的软链接。

执行以下命令:

sudo ln -s /etc/init.d/mytest.sh S99test

解释一下这条命令:

  • ln -s:创建软链接
  • /etc/init.d/mytest.sh:源脚本路径
  • S99test:链接名称,S表示启动,99是启动顺序,test是名字标识

创建完成后,再次运行ls查看:

ls

你应该能在列表中看到S99test,并且它的指向是/etc/init.d/mytest.sh

这一步非常关键——正是这个软链接告诉系统:“在进入 runlevel 5 时,请运行 mytest.sh 脚本”。

5. 测试重启并验证效果

一切就绪后,就可以通过重启来测试效果了。

执行重启命令:

sudo reboot

系统重新启动后,登录进去,检查日志文件是否被写入:

cat /var/log/mytest.log

如果看到类似下面的内容:

【Mon Apr 5 10:23:45 CST 2025】系统已启动,自定义脚本 mytest.sh 正在运行

恭喜你!你的脚本已经成功实现了开机自启!

而且整个过程只用了几个基础命令,完全不需要修改系统配置文件或学习复杂的 systemd 单元语法,非常适合初学者快速实现自动化任务。

6. 常见问题与实用建议

虽然上述方法简单有效,但在实际使用中可能会遇到一些小问题。以下是几个常见情况及应对建议:

❓ 脚本没执行?检查这几个地方

  1. 权限问题
    确保/etc/init.d/mytest.sh有可执行权限:

    sudo chmod +x /etc/init.d/mytest.sh
  2. 软链接路径错误
    使用ls -l S99test检查软链接是否正确指向目标脚本:

    lrwxrwxrwx 1 root root 23 Apr 5 10:20 S99test -> /etc/init.d/mytest.sh

    如果显示 “No such file or directory”,说明路径写错了。

  3. 日志目录不存在
    如果脚本要写入/var/log/mytest.log,但该文件所在目录不可写,也会失败。可以提前创建并赋权:

    sudo touch /var/log/mytest.log sudo chmod 644 /var/log/mytest.log

更进一步的小技巧

  • 想让脚本更规范?加个标准头部
    给脚本加上 LSB(Linux Standard Base)注释头,可以让它更像一个正规服务脚本:

    #!/bin/bash ### BEGIN INIT INFO # Provides: mytest # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: 自定义测试启动脚本 # Description: 用于测试开机自启功能的简单脚本 ### END INIT INFO echo "【$(date)】系统已启动,自定义脚本 mytest.sh 正在运行" >> /var/log/mytest.log

    这样不仅便于管理,某些工具还能识别这些元信息。

  • 支持多个运行级别?多建几个链接就行
    如果你想让脚本在 runlevel 3 和 5 都能启动,可以分别在/etc/rc3.d//etc/rc5.d/创建软链接:

    sudo ln -s /etc/init.d/mytest.sh /etc/rc3.d/S99test sudo ln -s /etc/init.d/mytest.sh /etc/rc5.d/S99test
  • 不想用了?删除软链接即可
    删除开机启动非常简单,只需删掉软链接,不影响原脚本:

    sudo rm /etc/rc5.d/S99test

    完全可逆,安全无忧。

7. 总结

通过本文的介绍,你应该已经掌握了如何在 CentOS 和 Ubuntu 系统中,为一个简单的脚本配置开机自启功能。整个过程只需要五步:

  1. 编写并放置脚本到/etc/init.d/
  2. 使用runlevel查看当前运行级别
  3. 进入对应的/etc/rcX.d/目录
  4. 创建以S开头的软链接
  5. 重启系统并验证结果

这种方法基于传统的 SysVinit 启动机制,在大多数主流发行版中仍然有效,尤其适合那些不熟悉 systemd 或只想快速实现自动化的用户。

更重要的是,这套流程逻辑清晰、操作直观、易于调试,真正做到了“小白也能几分钟搞定”。

无论你是想做系统监控、环境初始化,还是定时任务预加载,都可以用这种方式轻松实现。下次再有人问你“怎么让脚本开机运行”,你可以自信地说:很简单,我教你三分钟搞定。


获取更多AI镜像

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

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

Qwen All-in-One交通调度辅助:语音指令解析实战

Qwen All-in-One交通调度辅助:语音指令解析实战 1. 为什么交通调度需要“听懂话”的AI? 你有没有遇到过这样的场景: 调度中心值班员正盯着大屏,突然接到一线人员电话:“西三环辅路有辆公交车抛锚了,后方已…

作者头像 李华
网站建设 2026/4/16 12:46:48

YOLOv13官版镜像FullPAD机制体验,梯度传播更顺畅

YOLOv13官版镜像FullPAD机制体验,梯度传播更顺畅 在目标检测模型迭代加速的今天,YOLO系列早已不只是一个算法代号,而是一套完整的工程实践范式。从v1到v13,每一次版本跃迁背后,都藏着对“实时性”与“精度”这对矛盾体…

作者头像 李华
网站建设 2026/4/16 12:57:22

高校教学应用场景:Live Avatar实验室部署实训教程

高校教学应用场景:Live Avatar实验室部署实训教程 1. 为什么高校需要这个数字人模型 Live Avatar是阿里联合高校开源的数字人模型,专为教育场景设计。它不是那种只能在演示视频里晃两下的“花瓶”,而是真正能跑进实验室、进课堂、进学生实训…

作者头像 李华
网站建设 2026/4/16 14:46:05

绝对路径输入更稳定,BSHM使用小技巧分享

绝对路径输入更稳定,BSHM使用小技巧分享 人像抠图看似简单,实际落地时总有些“小脾气”——明明参数都对,图片却报错打不开;换了个文件夹,结果输出路径乱了;测试图能跑通,自己上传的图就卡在预…

作者头像 李华
网站建设 2026/4/16 11:58:13

OCR阈值怎么调?科哥镜像实测不同场景下的最佳参数设置

OCR阈值怎么调?科哥镜像实测不同场景下的最佳参数设置 OCR文字检测不是“开箱即用”就完事的技术——尤其在真实业务中,同一套模型面对证件照、手机截图、手写便签、广告海报时,效果天差地别。而决定成败的关键变量之一,往往被新…

作者头像 李华
网站建设 2026/4/16 12:33:52

保姆级教学:跟着操作就能跑通Qwen2.5-7B微调流程

保姆级教学:跟着操作就能跑通Qwen2.5-7B微调流程 你是不是也遇到过这些情况: 想试试大模型微调,但卡在环境配置上——装框架报错、显存不够、依赖冲突; 下载了教程,发现步骤跳步严重,缺个路径就卡半天&…

作者头像 李华