【Linux】配置服务自启动

【Linux】配置服务自启动

【1】使用场景

在 Linux 环境下,给 Redis 设置开机自启动 + 进程异常挂掉自动重启,避免服务挂掉后不方便手动重启带来的问题

【2】配置过程

(1)核心前提

(1)找到你的Redis 实际路径(替换下面命令中的路径):

redis-server 启动程序路径(如 /usr/local/redis/bin/redis-server)

redis.conf 配置文件路径(如 /usr/local/redis/conf/redis.conf)

(2)编辑 redis.conf,必须关闭后台运行(systemd 管理不允许进程后台运行):

powershell 复制代码
daemonize no  # 原为yes,改为no(关键!否则会和systemd冲突)
pidfile /var/run/redis_6379.pid  # 保持默认即可

(2)创建 Redis systemd 自启服务文件

(1)新建服务配置文件

执行命令创建 systemd 服务文件(路径固定):

powershell 复制代码
vim /etc/systemd/system/redis.service

(2)粘贴以下配置(替换路径为你自己的 Redis 路径)

powershell 复制代码
[Unit]
Description=Redis Server
After=network.target  # 依赖网络启动

[Service]
# 核心:Redis启动命令(替换为你的redis-server + redis.conf路径)
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
# Redis停止命令
ExecStop=/usr/local/redis/bin/redis-cli shutdown
# 自动重启核心配置(挂了就重启)
Restart=always        # 无论何种原因挂掉,都自动重启
RestartSec=2          # 挂掉后2秒重启
User=root             # 启动用户(可改为redis专用用户)
LimitNOFILE=65536     # 最大文件句柄(解决Redis连接限制)

[Install]
WantedBy=multi-user.target  # 开机启动级别

✅ 关键参数解释:

Restart=always:进程崩溃、被 kill、异常退出,都会自动重启;

RestartSec=2:避免频繁重启,间隔 2 秒再拉起;

daemonize no:systemd 托管服务必须前台运行。

(3)启用自启动 + 自动重启(3 条命令)

(1)重载 systemd 配置(让系统识别新服务)

powershell 复制代码
systemctl daemon-reload

(2)设置开机自动启动

powershell 复制代码
systemctl enable redis

输出 Created symlink ... 表示自启设置成功。

(3)启动 Redis 服务

powershell 复制代码
systemctl start redis

(4)验证是否生效(必做)

(1)查看服务状态

powershell 复制代码
systemctl status redis

✅ 正常状态:active (running) + enabled(开机自启)。

(2)测试「挂掉自动重启」

手动 kill 掉 Redis 进程,测试是否自动拉起:

powershell 复制代码
# 找到Redis进程ID
ps -ef | grep redis-server
# 强制kill进程
kill -9 【Redis进程ID】
# 再次查看进程,会发现Redis自动重启了(PID变了)
ps -ef | grep redis-server

(3)测试「开机自启」

重启服务器验证:

powershell 复制代码
reboot
# 重启后执行,查看Redis是否自动启动
systemctl status redis

(5)常用命令

powershell 复制代码
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
# 取消开机自启
systemctl disable redis

【3】案例

相关推荐
做运维的阿瑞9 分钟前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲35 分钟前
密码都对Node.js却连不上Linux数据库
linux·mysql
彧azz36 分钟前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
浅念-1 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
日常筹谋记1 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
susplus2 小时前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Shadow(⊙o⊙)2 小时前
Linux进阶知识1.0
linux·运维·服务器
>Andre<2 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件
用户0510122572962 小时前
Linux下有关QT显示环境变量设置
linux·嵌入式
闲云自留地2 小时前
告别命令恐惧症,openEuler 基础操作 + 文本 + 网络管理实战
linux·运维·云计算