【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】案例

相关推荐
小生不才yz2 小时前
【Makefile 专家之路 | 基础篇】03. 规矩方圆:书写规则详解(通配符、文件搜索与伪目标)
linux
Lueeee.2 小时前
Linux下的ULN2003驱动板与28BYJ-48步进电机驱动移植
linux·驱动开发
海特伟业2 小时前
隧道调频广播覆盖-隧道调频广播无线覆盖系统建设要点、难点分析与解决应对
运维·设计模式
中国IT2 小时前
第3章:Docker与传统虚拟化比较
运维·docker·容器
洛菡夕2 小时前
nginx核心功能
linux·nginx
九硕智慧建筑一体化厂家2 小时前
DDC:看似普通的存在,在楼宇自控系统中却主宰智能建筑高效运行?
大数据·运维·人工智能·网络协议·制造·设计规范
原来是猿2 小时前
Linux - 基础IO【下】
linux·运维·服务器
淡泊if2 小时前
eBPF 实战:一次诡异的 Nginx 高延迟,我用 5 分钟在内核里找到了真凶
java·运维·nginx·微服务·ebpf
志栋智能3 小时前
安全超自动化的终极目标:实现自适应安全防护
运维·人工智能·安全·自动化