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

相关推荐
李日灐18 分钟前
< 7 > Linux 开发工具:git 版本控制器 和 cgdb/gdb 调试器
linux·运维·服务器·开发语言·git·调试器·gdb/cgdb
青木96030 分钟前
前后端开发调试运行技巧
linux·服务器·前端·后端·npm·uv
c++之路32 分钟前
C++ 模板
linux·开发语言·c++
xcbrand34 分钟前
餐饮品牌全案公司哪家可靠
运维·python
apl35939 分钟前
GUI 型 DevOps 平台的天花板,Ashby 在 1956 年就画好了
运维·devops
云动课堂1 小时前
【运维实战】MySQL 8.0 数据库 · 一键自动化部署方案 (适配银河麒麟 V10 / 龙蜥 8 / Rocky Linux 8 / CentOS 8)
linux·运维·数据库
cui_ruicheng1 小时前
Linux进程间通信(一):管道与IPC基础
linux·运维·服务器
Lumos_7771 小时前
Linux -- 互斥锁
linux
一叶龙洲1 小时前
Ubuntu开机无法用向日葵远程控制
linux·运维·ubuntu
计算机安禾1 小时前
【Linux从入门到镜头】第29篇:文本处理三剑客(下)——awk 数据处理神器
linux·运维·服务器