【Linux】配置服务自启动
- 【1】使用场景
- 【2】配置过程
-
- (1)核心前提
- [(2)创建 Redis systemd 自启服务文件](#(2)创建 Redis systemd 自启服务文件)
- [(3)启用自启动 + 自动重启(3 条命令)](#(3)启用自启动 + 自动重启(3 条命令))
- (4)验证是否生效(必做)
- (5)常用命令
- 【3】案例
【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