【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 小时前
精益生产中的TPM管理是什么?一文破解设备零故障的密码
服务器·网络·数据库·低代码·制造·源代码管理·精益工程
Vect__9 小时前
深刻理解进程、线程、程序
linux
w61001046610 小时前
CKAD-2026-Ingress
运维·k8s·ckad
@insist12311 小时前
网络工程师-生成树协议(STP/RSTP/MSTP)核心原理与应用
服务器·开发语言·网络工程师·软考·软件水平考试
末日汐11 小时前
传输层协议UDP
linux·网络·udp
zzzsde13 小时前
【Linux】库的制作和使用(3)ELF&&动态链接
linux·运维·服务器
CQU_JIAKE13 小时前
4.3【A]
linux·运维·服务器
AI周红伟13 小时前
OpenClaw是什么?OpenClaw能做什么?OpenClaw详细介绍及保姆级部署教程-周红伟
大数据·运维·服务器·人工智能·微信·openclaw
Elastic 中国社区官方博客13 小时前
当 TSDS 遇到 ILM:设计不会拒绝延迟数据的时间序列数据流
大数据·运维·数据库·elasticsearch·搜索引擎·logstash
qing2222222213 小时前
Linux中修改mysql数据表
linux·运维·mysql