🚨 重要提醒
在 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
注意事项
- 路径问题:所有路径必须使用绝对路径
- 权限问题:确保脚本有执行权限
- 环境变量:systemd 环境下环境变量可能不完整,必要时在脚本中加载环境变量
- 网络依赖 :如果脚本需要网络,确保在 systemd 服务文件中配置
After=network.target
推荐使用 systemd 方式,因为它提供了更好的服务管理、日志记录和故障恢复机制。