CentOS 系统 Shell 脚本开机自启动方法详解

🚨 重要提醒

在 CentOS 系统中设置 Shell 脚本开机自启动,主要有以下几种方法,推荐使用 systemd 服务方式(适用于 CentOS 7+):

方法一:使用 systemd 服务(推荐)

步骤1:准备 Shell 脚本

创建脚本文件并赋予可执行权限:

bash 复制代码
sudo vi /path/to/your-script.sh
sudo chmod +x /path/to/your-script.sh

步骤2:创建 systemd 服务文件

在 /etc/systemd/system/ 目录下创建服务文件:

bash 复制代码
sudo vi /etc/systemd/system/your-service.service

步骤3:编辑服务文件内容

ini 复制代码
[Unit]
Description=Your Service Description
After=network.target
[Service]
Type=simple
ExecStart=/path/to/your-script.sh
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target

步骤4:启用并启动服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable your-service.service
sudo systemctl start your-service.service

步骤5:验证服务状态

bash 复制代码
sudo systemctl status your-service.service

方法二:使用 rc.local 文件

步骤1:确保 rc.local 可执行

bash 复制代码
sudo chmod +x /etc/rc.d/rc.local

步骤2:编辑 rc.local 文件

bash 复制代码
sudo vi /etc/rc.d/rc.local

步骤3:添加脚本路径

在文件末尾添加:

bash 复制代码
/path/to/your-script.sh

方法三:使用 chkconfig(适用于 CentOS 6)

步骤1:将脚本移动到 init.d 目录

bash 复制代码
sudo mv /path/to/your-script.sh /etc/init.d/
sudo chmod +x /etc/init.d/your-script.sh

步骤2:添加 chkconfig 支持

在脚本开头添加:

bash 复制代码
#!/bin/sh
# chkconfig: 2345 90 10
# description: Your service description

步骤3:启用服务

bash 复制代码
sudo chkconfig --add your-script.sh
sudo chkconfig your-script.sh on

方法四:使用 crontab

bash 复制代码
sudo crontab -e

添加:

bash 复制代码
@reboot /path/to/your-script.sh

注意事项

  1. 路径问题:所有路径必须使用绝对路径
  2. 权限问题:确保脚本有执行权限
  3. 环境变量:systemd 环境下环境变量可能不完整,必要时在脚本中加载环境变量
  4. 网络依赖 :如果脚本需要网络,确保在 systemd 服务文件中配置 After=network.target

推荐使用 systemd 方式,因为它提供了更好的服务管理、日志记录和故障恢复机制。

相关推荐
沫璃染墨19 分钟前
《从零入门Linux系统篇(五十八):线程篇·十一——线程安全与死锁详解:从可重入到多锁管理》
linux·服务器·开发语言·c++·驱动开发·安全·架构
墨家句子1 小时前
4G 显存老显卡怎么跑模型:llama.cpp 加 GGUF 配置
linux·后端
2601_962885722 小时前
如何用 Python 统计 A 股连续涨停(几连板)?
java·linux·python
H.莓飛3 小时前
【数据结构】二叉树
linux·数据结构·算法
荣合技术服务3 小时前
VMware ESXi 虚拟化平台服务器虚拟机数据恢复服务
linux·运维·服务器
杭州领祺科技3 小时前
保信子站深度解析:继电保护信息采集与故障诊断的关键枢纽
linux·服务器·网络·新能源·储能·虚拟电厂
xh didida3 小时前
Linux -- 进程概念
linux·服务器·开发语言·c++
爱吃香菜的初学者3 小时前
十三.Linux——信号量
linux·运维·服务器·开发语言
小小龙学IT3 小时前
ROS2 安装完全指南(Ubuntu 版):从零开始到跑通第一个节点本文
linux·运维·ubuntu
Ruiery3 小时前
Linux 6.6内核 CPU 深度解析(十二):SMT 进阶 — core scheduling 与共享算力的负载平衡
linux·运维·服务器