我决定将运行13.2的机器升级到最新的Leap 42.1。 我开始了这个过程,并且进行了升级。 重新启动后,除了redis服务器服务之外,所有工作都正常。 我无法使用以下方式启动Redis服务:
# service redis start
状态是:
# service redis status redis.target - Redis target allowing to start/stop all [email protected] instances at once Loaded: loaded (/usr/lib/systemd/system/redis.target; static) Active: active since Fri 2015-11-20 03:47:07 EET; 1s ago
尽pipe它说它是“活跃”,但当我检查过程是否正在运行时,实际上并不是:
# ps ax | grep -i redis 20892 pts/0 S+ 0:00 grep -i redis
我可以启动Redis服务器的唯一方法是手动运行:
# redis-server /etc/redis/default.conf
启动服务器没有任何问题。
我已经尝试重新安装redis软件包,并试图将供应商从“官方”更改为“服务器:数据库”存储库。 这些似乎都没有解决这个问题。
我的default.conf文件几乎是只有这些更改的“默认”模板:
daemonize yes #default is no bind 127.0.0.1 1.2.3.4 #default is 127.0.0.1
服务文件:
/usr/lib/systemd/system/redis.target [Unit] Description=Redis target allowing to start/stop all [email protected] instances at once
/usr/lib/systemd/system/[email protected] [Unit] Description=Redis After=network.target PartOf=redis.target [Service] Type=simple User=redis Group=redis PrivateTmp=true PIDFile=/var/run/redis/%i.pid ExecStart=/usr/sbin/redis-server /etc/redis/%i.conf Restart=on-failure #ExecStart=/usr/sbin/openvpn --daemon --suppress-timestamps --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf #ExecReload=/sbin/killproc -p /var/run/openvpn/%i.pid -HUP /usr/sbin/openvpn [Install] WantedBy=multi-user.target redis.target
有什么想法从13.2改变到42.1,为什么服务停止工作? 另外我似乎没有回想起我之前在chkconfig列出的redis,在升级之后,它从那里走了,虽然我不太确定这是问题的一部分。
编辑:这是日志文件感谢@迈克尔汉普顿:
9042:signal-handler (1448036091) Received SIGTERM scheduling shutdown... _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 3.0.4 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 9042 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 9042:M 20 Nov 18:14:51.090 # Server started, Redis version 3.0.4 9042:M 20 Nov 18:14:51.091 * DB loaded from disk: 0.000 seconds 9042:M 20 Nov 18:14:51.091 * The server is now ready to accept connections on port 6379 9042:M 20 Nov 18:14:51.091 # User requested shutdown... 9042:M 20 Nov 18:14:51.091 * Saving the final RDB snapshot before exiting. 9042:M 20 Nov 18:14:51.126 * DB saved on disk 9042:M 20 Nov 18:14:51.126 * Removing the pid file. 9042:M 20 Nov 18:14:51.126 # Redis is now ready to exit, bye bye...
我不知道为什么它决定自发地退出,由于“用户请求关机”。
这是一个系统单元,它能够以不同configuration实例化服务器的多个副本。
要使用它,请指定要使用的实例的名称。 例如,您现有的configuration似乎具有default名称:
systemctl enable redis@default systemctl start redis@default
您可能必须更改/etc/redis/default.conf以便将pidfile写入systemd预期的位置。
pidfile /var/run/redis/default.pid
search了一段时间后,我发现需要注释掉daemonize yes或将其设置为no 。 有趣的部分是我有13.2相同的configuration,它没有任何问题的工作。
无论如何,希望这可以帮助任何人。