Warum startet systemctl den Redis-Server unter CentOS 7 nicht?

13

Ich habe Redis auf einer neuen CentOS 7-Box installiert, kann es aber nicht mit systemctl starten.

Es wurde wie folgt installiert:

rpm -i http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
yum install redis

Der Versuch, es so zu starten, schien im Stillen zu scheitern (es gab keine Ausgabe):

systemctl start redis-server # also tried redis-server.service

Folgendes passiert, wenn Sie versuchen, eine Verbindung herzustellen:

redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

Aber das manuelle Starten funktioniert:

[root@redis ~]# redis-server /etc/redis.conf
[root@redis ~]# redis-cli
127.0.0.1:6379>

Weiß jemand, was falsch läuft oder wie man das debuggt?

UPDATE: Ausgabe von /var/log/redis/redis.logist unten. Übrigens ist es ein 512 MB RAM VPS.

[1972] 29 Jul 18:52:16.258 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
[1972] 29 Jul 18:52:16.258 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
[1972] 29 Jul 18:52:16.258 # Current maximum open files is 1024. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 2.8.13 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in stand alone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 1972
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

[1972] 29 Jul 18:52:16.259 # Server started, Redis version 2.8.13
[1972] 29 Jul 18:52:16.259 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[1972] 29 Jul 18:52:16.260 * DB loaded from disk: 0.001 seconds
[1972] 29 Jul 18:52:16.260 * The server is now ready to accept connections on port 6379
[1972] 29 Jul 18:52:16.265 # User requested shutdown...
[1972] 29 Jul 18:52:16.265 * Saving the final RDB snapshot before exiting.
[1972] 29 Jul 18:52:16.267 * DB saved on disk
[1972] 29 Jul 18:52:16.267 * Removing the pid file.
[1972] 29 Jul 18:52:16.267 # Redis is now ready to exit, bye bye...

Und Status:

[root@redis ~]# systemctl status redis-server
redis-server.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis-server.service; disabled)
   Active: inactive (dead)

Jul 29 18:52:16 redis systemd[1]: Starting Redis persistent key-value database...
Jul 29 18:52:16 redis systemd[1]: Started Redis persistent key-value database.
Zubin
quelle
2
Es hat natürlich gut angefangen, und dann User requested shutdown...kein offensichtlicher Grund dafür.
Michael Hampton
@MichaelHampton ja es fährt sofort herunter. Ich würde wirklich gerne wissen warum! Der einzige Unterschied, den ich sehen kann, wenn ich es manuell starte, ist, dass es als root läuft (nicht als Benutzer redis).
Zubin

Antworten:

24

Schließlich repariert es. Systemd erfordert, dass redis nicht daemonisiert ausgeführt wird, sodass die Konfiguration geändert werden muss:

# /etc/redis.conf
daemonize yes # << comment this out
Zubin
quelle
Groß. Dies ist ein Fehler in der System-Unit-Datei und sollte gemeldet werden .
Michael Hampton
Hast du das jemals gelöst? Sie haben es nicht als gelöst markiert.
Michael Hampton
1
@MichaelHampton Ja, die obige Technik hat funktioniert. Außerdem habe ich den Fehler gemeldet und er wurde behoben.
Zubin
segne dich, du schöner Bastard
Artur Sapek
Ich stellte fest, dass ich auch die Datei redis.service (in /etc/systemd/system/multi-user.target.wants) bearbeiten musste, die mit /usr/lib/systemd/system/redis.server verknüpft ist. Ich wechselte --daemonize yeszu, Sie ahnen es, --daemonize no.
Martin