我们一直在许多 AWS EC2 Ubuntu 实例 (14.04.4 LTS) 上运行 redis-server,没有出现任何问题。我启动了一个测试服务器来尝试升级到 Ubuntu 16.04.1 LTS,现在 redis 无法工作。
如果我尝试手动启动 redis,我会得到以下信息:
~$ sudo service redis-server restart
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.
Run Code Online (Sandbox Code Playgroud)
错误信息:
~$ systemctl status redis-server.service
? redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: inactive (dead) (Result: exit-code) since Wed 2016-10-19 19:26:06 UTC; 25min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 3730 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=1/FAILURE)
Process: 3724 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Control process exited, code=exited status=1
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Unit entered failed state.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Failed with result 'exit-code'.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Stopped Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Start request repeated too quickly.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
sudo apt-get
卸载和重新安装redis-server/etc/redis/redis.conf
从包中接受新文件,一次保留我们的原始文件有什么建议?
我使用安装了redis apt-get install redis-server
我的问题:我找到的教程,例如。对这个问题的另一个答复假设 redis 二进制文件位于/usr/local/bin
.
在我的安装中,它们位于,/usr/bin
因此修复程序正在更改/etc/systemd/system/redis.service
以反映这一点。
此时我可以/usr/bin/redis-server /etc/redis/redis.conf
手动启动并成功运行sudo systemctl start redis
。
因此,要让 redis 在 16.04 上运行,您需要做的是:
apt-get install redis-server
,不要下载 tar,然后进行安装。sudo vi /etc/systemd/system/redis.service
Run Code Online (Sandbox Code Playgroud)[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/bin/redis-server /etc/redis/redis.conf ExecReload=/bin/kill -USR2 $MAINPID ExecStop=/usr/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target
sudo systemctl start redis
sudo /usr/bin/redis-server /etc/redis/redis.conf
。我必须编辑的重要部分是确保
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/bin/redis-cli 关机
行没有指向usr/local/bin/foo
- 需要删除/local
也许尝试一下,这是一个工作配置,看看/lib/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
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
然后检查配置中指定的日志文件 /etc/redis/redis.conf
以确保您具有正确的权限。
归档时间: |
|
查看次数: |
33029 次 |
最近记录: |