温馨提示×

CentOS如何设置开机自启

小樊
42
2026-07-08 17:04:22
栏目: 智能运维

CentOS 中设置开机自启,取决于你的 CentOS 版本要自启的内容(服务、脚本、程序)。下面按常见场景详细说明。


一、CentOS 7 / 8(使用 systemd,最常见)

✅ 1. 服务类(推荐方式)

(1)创建 systemd 服务文件

vi /etc/systemd/system/myservice.service

示例内容:

[Unit]
Description=My Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/myprogram
Restart=always
User=root

[Install]
WantedBy=multi-user.target

(2)重新加载 systemd

systemctl daemon-reload

(3)设置开机自启

systemctl enable myservice

(4)启动服务

systemctl start myservice

✅ 查看状态:

systemctl status myservice

✅ 2. 普通脚本开机自启(systemd 方式)

例如:/root/start.sh

vi /etc/systemd/system/myscript.service
[Unit]
Description=My Script
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/bash /root/start.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable myscript

二、CentOS 6 或老系统(init.d)

✅ 1. 将脚本放入 /etc/init.d/

vi /etc/init.d/myservice

示例:

#!/bin/bash
# chkconfig: 2345 90 10
# description: My Service

case "$1" in
start)
    /usr/local/bin/myprogram
    ;;
stop)
    killall myprogram
    ;;
esac

✅ 2. 赋予执行权限

chmod +x /etc/init.d/myservice

✅ 3. 设置开机自启

chkconfig --add myservice
chkconfig myservice on

三、使用 rc.local(不推荐,但简单)

⚠️ CentOS 7 以后默认禁用,不推荐生产环境使用

1. 编辑 rc.local

vi /etc/rc.d/rc.local

添加:

/bin/bash /root/start.sh

2. 赋予执行权限

chmod +x /etc/rc.d/rc.local

四、定时任务方式(不推荐用于服务)

crontab -e
@reboot /root/start.sh

⚠️ 环境变量可能不完整,不适合复杂程序。


五、如何判断你的 CentOS 版本?

cat /etc/centos-release

systemctl --version

✅ 推荐总结

场景 推荐方式
CentOS 7/8 服务 systemd
老系统 init.d
临时脚本 rc.local
简单命令 crontab @reboot

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 要自启的是 服务 / 脚本 / Docker / Java 程序 / Nginx 等

我可以给你 精确到命令级别 的配置方案。

0