Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动

下面是针对 Ubuntu、CentOS、AlmaLinux 9.5 三个系统,如何启用并使用 rc.local 来实现 开机启动脚本 的完整指南

开机时,系统自动执行 /etc/rc.local 中的命令,比如启动 Tomcat、打印日志等。

一、Ubuntu 系(如 Ubuntu 20.04/22.04)

  1. 创建 /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

  1. 创建 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

  1. 启用并启动服务
    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

  1. 编辑文件

    sudo nano /etc/rc.d/rc.local

    写入:

    #!/bin/bash

    /opt/tomcat/bin/startup.sh

    exit 0

  2. 添加执行权限

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

  3. 启用并启动服务

    sudo systemctl enable rc-local

    sudo systemctl start rc-local

三、AlmaLinux 9.5(基于 RHEL9)

默认也没有启用 rc-local,但处理方法和 CentOS 相同:

  1. 编辑 rc.local

    sudo nano /etc/rc.d/rc.local

    内容例如:

    #!/bin/bash

    /opt/tomcat/bin/startup.sh

    exit 0

  2. 授权

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

  3. 启用服务(不要手动 ln -s)

    sudo systemctl daemon-reload

    sudo systemctl enable rc-local.service

    sudo systemctl start rc-local.service

  4. 查看状态

    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

相关推荐
是小胡嘛10 小时前
C++之Any类的模拟实现
linux·开发语言·c++
口袋物联11 小时前
设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·设计模式·简单工厂模式
qq_4798754312 小时前
X-Macros(1)
linux·服务器·windows
笨笨聊运维13 小时前
CentOS官方不维护版本,配置python升级方法,无损版
linux·python·centos
Warren9814 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展
HIT_Weston14 小时前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
福尔摩斯张15 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法
TH_115 小时前
腾讯云-(3)-Linux宝塔面板使用
linux·云计算·腾讯云
虚伪的空想家16 小时前
arm架构服务器使用kvm创建虚机报错,romfile “efi-virtio.rom“ is empty
linux·运维·服务器·javascript·arm开发·云原生·kvm
深藏bIue16 小时前
linux服务器mysql目录下的binlog文件删除
linux·服务器·mysql