Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
下面是针对 Ubuntu、CentOS、AlmaLinux 9.5 三个系统,如何启用并使用 rc.local 来实现 开机启动脚本 的完整指南
开机时,系统自动执行 /etc/rc.local 中的命令,比如启动 Tomcat、打印日志等。
一、Ubuntu 系(如 Ubuntu 20.04/22.04)
- 创建 /etc/rc.local
sudo nano /etc/rc.local
写入内容,例如:
#!/bin/bash
echo “Hello from rc.local at $(date)” >> /var/log/rc.local.log
/opt/tomcat/bin/startup.sh
exit 0
exit 0 必须写在最后!
rc.local 是传统文件,不写 systemd 服务也能支持,但建议启用兼容服务。
2… 设置权限
sudo chmod +x /etc/rc.local
- 创建 systemd 服务(Ubuntu 18.04 之后默认没了)
sudo nano /etc/systemd/system/rc-local.service
写入以下内容:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
- 启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable rc-local
sudo systemctl start rc-local
二、CentOS 7 / 8
CentOS 中 rc.local 路径是 /etc/rc.d/rc.local
-
编辑文件
sudo nano /etc/rc.d/rc.local
写入:
#!/bin/bash
/opt/tomcat/bin/startup.sh
exit 0 -
添加执行权限
sudo chmod +x /etc/rc.d/rc.local -
启用并启动服务
sudo systemctl enable rc-local
sudo systemctl start rc-local
三、AlmaLinux 9.5(基于 RHEL9)
默认也没有启用 rc-local,但处理方法和 CentOS 相同:
-
编辑 rc.local
sudo nano /etc/rc.d/rc.local
内容例如:
#!/bin/bash
/opt/tomcat/bin/startup.sh
exit 0 -
授权
sudo chmod +x /etc/rc.d/rc.local -
启用服务(不要手动 ln -s)
sudo systemctl daemon-reload
sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service -
查看状态
sudo systemctl status rc-local
常见问题提示
问题 原因 解决
rc.local not found 路径不正确 检查系统类型,Ubuntu 用 /etc/rc.local
,RHEL/AlmaLinux 用 /etc/rc.d/rc.local
Permission denied 没有执行权限 chmod +x rc.local
exit 0
丢失 脚本执行可能被中断 请务必在结尾加上 exit 0