Redis 错误:Failed with result 'start-limit-hit'
Redis 错误:Failed with result 'start-limit-hit'
背景
Redis 版本为 5.0.4;
文件 /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=Redis Datastore Server
After=network.target
[Service]
Type=forking
PIDFile=/var/run/redis/redis_6379
User=redis
Group=redis
Environment=statedir=/var/run/redis
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${statedir}
ExecStartPre=/bin/chown -R redis:redis ${statedir}
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
运行
在使用 systemctl 启动 Redis 时报错:
sudo systemctl daemon-reload
sudo systemctl start redis
错误日志:
Job for redis-server.service failed because the control process exited with error code. See "systemctl status redis-server.service" and "journalctl -xe" for details.
根据提示用命令 systemctl status redis-server.service
查看结果如下:
● redis-server.service - Redis Datastore Server
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit-hit) since Thu 2019-04-18 15:36:10 CST; 5s ago
Process: 8341 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd (code=exited
Process: 8337 ExecStartPre=/bin/chown -R redis:redis ${statedir} (code=exited, status=0/SUCCESS)
Process: 8333 ExecStartPre=/bin/mkdir -p ${statedir} (code=exited, status=0/SUCCESS)
Apr 18 15:36:10 dl26 systemd[1]: Failed to start Redis Datastore Server.
Apr 18 15:36:10 dl26 systemd[1]: redis-server.service: Unit entered failed state.
Apr 18 15:36:10 dl26 systemd[1]: redis-server.service: Failed with result 'exit-code'.
Apr 18 15:36:10 dl26 systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Apr 18 15:36:10 dl26 systemd[1]: Stopped Redis Datastore Server.
Apr 18 15:36:10 dl26 systemd[1]: redis-server.service: Start request repeated too quickly.
Apr 18 15:36:10 dl26 systemd[1]: Failed to start Redis Datastore Server.
Apr 18 15:36:10 dl26 systemd[1]: redis-server.service: Unit entered failed state.
Apr 18 15:36:10 dl26 systemd[1]: redis-server.service: Failed with result 'start-limit-hit'.
发现 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd
报错,执行该命令出现如下错误日志:
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 88
>>> 'protected-mode yes'
Bad directive or wrong number of arguments
问题是在处理配置文件时出现参数不匹配现象,原因是因为我在用源码安装 redis 后还用 apt-get install redis
的方法安装了一个旧版本的 redis,在 /usr/bin/
目录下的 redis-server 不是最新版本,故出现不兼容的问题。
解决方法:
cp -r redis/src/redis-server /usr/bin/redis-server
再次执行:
sudo systemctl daemon-reload
sudo systemctl start redis
仍然报同样的错误,执行/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd
,日志如下:
8436:C 18 Apr 2019 15:37:50.558 # Can't chdir to '/home/chenxiang/redis': No such file or directory
发现是目录名称不存在,文件 /etc/redis/redis.conf
中的目录名称为 /home/chenxiang/redis
,而实际 redis 目录名称为 /home/chenxiang/redis-5.0.4
,修改实际目录名称为 redis
即解决这一问题。
继续运行:
sudo systemctl daemon-reload
sudo systemctl start redis
出现了新的错误:
Job for redis-server.service failed because a timeout was exceeded. See "systemctl status redis-server.service" and "journalctl -xe" for details.
通过 systemctl status redis-server.service
查看日志信息:
● redis-server.service - Redis Datastore Server
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: activating (start) since Thu 2019-04-18 15:49:48 CST; 1min 21s ago
Process: 8533 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd (code=exited
Process: 8530 ExecStartPre=/bin/chown -R redis:redis ${statedir} (code=exited, status=0/SUCCESS)
Process: 8527 ExecStartPre=/bin/mkdir -p ${statedir} (code=exited, status=0/SUCCESS)
CGroup: /system.slice/redis-server.service
└─8535 /usr/bin/redis-server 127.0.0.1:6379
Apr 18 15:49:48 dl26 systemd[1]: Starting Redis Datastore Server...
Apr 18 15:49:48 dl26 redis-server[8533]: 8533:C 18 Apr 2019 15:49:48.250 # oO0OoO0OoO0Oo Redis is start
Apr 18 15:49:48 dl26 redis-server[8533]: 8533:C 18 Apr 2019 15:49:48.250 # Redis version=5.0.4, bits=64
Apr 18 15:49:48 dl26 redis-server[8533]: 8533:C 18 Apr 2019 15:49:48.250 # Configuration loaded
Apr 18 15:49:48 dl26 redis-server[8533]: 8533:C 18 Apr 2019 15:49:48.250 # systemd supervision requeste
Apr 18 15:49:48 dl26 systemd[1]: redis-server.service: PID file /var/run/redis/redis_6379 not readable
发现 redis-server.service 没有足够的权限访问 /var/run/redis/redis_6379
,需要修改/etc/systemd/system/redis.service
为:
[Unit]
Description=Redis Datastore Server
After=network.target
[Service]
Type=forking
PIDFile=/var/run/redis/redis.pid
User=redis
Group=redis
Environment=statedir=/var/run/redis
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p ${statedir}
ExecStartPre=/bin/chown -R redis:redis ${statedir}
ExecStartPost=/bin/sh -c "echo 6739 > /var/run/redis/redis.pid"
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
其中修改两行:PIDFile=/var/run/redis/redis.pid
,以及 ExecStartPost=/bin/sh -c "echo 6739 > /var/run/redis/redis.pid"
。
2019.4
Redis 错误:Failed with result 'start-limit-hit'的更多相关文章
- Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了
Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了 >>>>>>>>>>>>>>> ...
- python pip安装模块提示错误failed to create process
python pip安装模块提示错误failed to create process 原因: 报这个错误的原因,是因为python的目录名称或位置发生改动. 解决办法: 1.找到修改python所在的 ...
- Ubuntu18.04系统执行语句时出现错误Failed to load module "canberra-gtk-module"
Ubuntu18.04系统执行gnuradio-companion时,命令行提示错误Failed to load module "canberra-gtk-module",虽然看起 ...
- golang 操作redis 错误:failed redigo: unexpected type for String, got type int64
报错的代码: isExist,err := redis.String(conn.Do("EXISTS", key)) 这个操作返回的应该是bool类型,所有改成 isExist,e ...
- 错误处理(Operation Result)方法
自己开发的公众号,可以领取淘宝内部优惠券 问题 现在有一个FileStorageService类,继承自IStorageService,具体实现如下 public interface IStorage ...
- IDEA通过Jedis操作Linux上的Redis;Failed to connect to any host resolved for DNS name问题
testPing.java public class testPing { public static void main(String[] args) { Jedis jedis = new Jed ...
- Redis错误配置详解
在使用Redis做缓存时,应用往往能得到非常高的性能.然而,如果配置不当,你将遇到很多令人头疼的问题,比如复制缓冲区限制.复制超时等. Redis提供了许多提高和维护高效内存数据库使用的工具.在无需额 ...
- redis错误总结
1.同步错误.不停重试一直不成功 Full resync from master: e51165e2868c541e28134a287f9bfe36372bae34:80575961684 MASTE ...
- Maven错误Failed to read artifact descriptor for xxx:jar 和 missing artifact maven dependency
可参考:http://stackoverflow.com/questions/6111408/maven2-missing-artifact-but-jars-are-in-place http:// ...
随机推荐
- Centos7安装并配置mysql5.6
1.下载安装包:https://pan.baidu.com/s/18xAumOggjm9bu9Wty6kYjg 2.卸载系统自带的Mariadb 2.1查询已安装的mariadb [root@loca ...
- Ansoftmaxwell15.0
电场磁场仿真软件安装出现问题: 基本问题都一样: 解决方式1:安装路径不要有中文的路径. 若安装提示vc++2005x86 安装失败 问题是:没有安装vc++2005 请安装vc++2005 x86 ...
- C#开启异步 线程的四种方式
一.异步委托开启线程public static void Main(string[] args){ Action<int,int> a=add; a.BeginInvoke(3,4,nul ...
- subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
解决方法find / -name lsb_releaserm -rf /usr/bin/lsb_release
- 【Idea】idea waiting until last debugger command completes
https://blog.csdn.net/KingBoyWorld/article/details/73440717 以上方法可以解决 另: 有说: 并未尝试 https://stackoverfl ...
- Github上36893颗星!这个被称为下一代企业级应用首选技术你学了么?
用一句话概括:这个技术,是JAVA后端框架的龙头老大,执牛耳者.这个技术就是: Spring Boot春靴. Spring Boot到底凭什么成为Java社区最具影响力的项目?说直白点,他爹Spr ...
- django js引入失效问题
今天将项目中html文件下的自定义scrept代码单独独立,结果js引入无效,没有任何时间效果,在浏览器查看引入文件也正常. 后来发现自己引入的位置不对,js的引入文件应该放在body体内,而我把他们 ...
- flask hook
@app.before_first_requestdef before_first_request(): """在第一次请求之前会访问该函数""&qu ...
- java操作JacocClient下载dump文件
记录瞬间 import org.jacoco.core.data.ExecutionDataWriter; import org.jacoco.core.runtime.RemoteControlRe ...
- https://blog.csdn.net/uftjtt/article/details/79044186
https://blog.csdn.net/uftjtt/article/details/79044186