redis 启动与启动报错redis_6379.pid exists问题

本文提供了解决Redis启动时出现'/var/run/redis_6379.pidexists, process is already running or crashed'错误的解决方案,步骤包括删除pid文件并重启服务。

启动service redisd start时报错
/var/run/redis_6379.pid exists, process is already running or crashed
解决方案:
执行命令:

rm -rf /var/run/redis_6379.pid

然后重新执行 service redisd start

在 Linux 环境下启动 Redis,可以通过以下几种方式进行操作,具体取决于安装方式和需求。 ### 使用 redis-server 启动 如果已经将 Redis 编译安装,并且配置文件 `redis.conf` 已经复制到合适的位置(如 `/etc/redis/`),可以直接使用 `redis-server` 命令启动服务。例如: ```bash redis-server /etc/redis/redis.conf ``` 这种方式会以前台模式运行 Redis,若希望以后台进程方式运行,则可以在配置文件中设置 `daemonize yes` 选项,这样 Redis 将以守护进程的方式运行[^3]。 ### 通过 init 脚本管理 Redis 服务 对于 CentOS 或 Red Hat 系统,可以创建一个系统级别的 init 脚本用于管理 Redis 服务。例如,创建脚本 `/etc/init.d/redis_6379` 并添加如下内容(根据实际情况调整): ```bash #!/bin/sh # # redis Startup script for Redis server # # chkconfig: - 85 15 # description: Redis is a persistent key-value database # PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/bin/redis-server REDIS_CLI=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ]; then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi if [ "$?"="0" ]; then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ]; then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis_${REDISPORT} {start|stop|restart|force-reload}" >&2 exit 1 ;; esac ``` 确保脚本具有可执行权限后,可以通过以下命令控制 Redis 服务: ```bash chmod +x /etc/init.d/redis_6379 chkconfig --add redis_6379 service redis_6379 start ``` 此方法适用于需要长期运行的生产环境,并支持开机自启等功能[^2]。 ### systemd 方式启动 Redis(适用于较新版本的 Linux 发行版) 在基于 systemd 的 Linux 系统上,还可以创建一个服务单元文件 `/etc/systemd/system/redis.service` 来管理 Redis 服务。示例内容如下: ``` [Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Group=redis ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/local/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target ``` 保存文件后,重新加载 systemd 配置并启用 Redis 服务: ```bash sudo systemctl daemon-reload sudo systemctl enable redis sudo systemctl start redis ``` 这种方法提供了更现代的服务管理机制,并支持自动重启等高级功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值