Ich bin dieser Antwort gefolgt:https://serverfault.com/a/893075/210494. Ich habe CentOS 7.8.
redis.service
[Service]
Type=notify
ExecStart=/opt/redis/bin/redis-server /opt/redis/conf/redis-master.conf
TimeoutStartSec=60
TimeoutStopSec=60
TimeOutSec=90
RestartSec=5s
Restart=on-success
redis-master.conf
daemonize no
supervised systemd
Wenn ich diesen Dienst ausführe, wird der Redis-Prozess gestartet, aber er systemctl
hängt sich auf und ich muss Strg-C drücken, um zur Shell zurückzukehren.
Das steht in den Protokollen:
69486:C 28 Aug 2020 17:31:14.545 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=69486, just started
69486:C 28 Aug 2020 17:31:14.545 # Configuration loaded
69486:C 28 Aug 2020 17:31:14.545 # WARNING supervised by systemd - you MUST set appropriate values for TimeoutStartSec and TimeoutStopSec in your service unit.
69486:M 28 Aug 2020 17:31:14.546 * Increased maximum number of open files to 4096 (it was originally set to 1024).
69486:M 28 Aug 2020 17:31:14.547 * Running mode=standalone, port=6380.
69486:M 28 Aug 2020 17:31:14.547 # Server initialized
Wenn ich es auskommentiere Type=notify
, wird systemctl sofort beendet, aber das steht in den Protokollen.
68629:C 28 Aug 2020 17:29:58.933 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=68629, just started
68629:C 28 Aug 2020 17:29:58.933 # Configuration loaded
68629:C 28 Aug 2020 17:29:58.933 # WARNING supervised by systemd - you MUST set appropriate values for TimeoutStartSec and TimeoutStopSec in your service unit.
68629:C 28 Aug 2020 17:29:58.933 # systemd supervision requested, but NOTIFY_SOCKET not found
68629:M 28 Aug 2020 17:29:58.933 * Increased maximum number of open files to 4096 (it was originally set to 1024).
68629:M 28 Aug 2020 17:29:58.934 * Running mode=standalone, port=6380.
68629:M 28 Aug 2020 17:29:58.934 # Server initialized
Wo liegt das Problem? Ich habe ein DigitalOcean-Tutorial gefunden, wo sie es nicht haben, Type=notify
und ich habe Redis-Probleme gefunden, wo sie es erfolgreich empfohlen haben Type=notify
.
Aktualisieren
Job for redis.service failed because a timeout was exceeded. See "systemctl status redis.service" and "journalctl -xe" for details.
[root@DB dev]# systemctl status redis
● redis.service - Redis
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Sun 2020-08-30 12:06:58 CEST; 46min ago
Process: 11134 ExecStart=/opt/app/redis/default/bin/redis-server /opt/app/redis/default/conf/redis-master.conf (code=exited, status=0/SUCCESS)
Main PID: 11134 (code=exited, status=0/SUCCESS)
Aug 30 12:05:57 DB systemd[1]: Starting Redis...
Aug 30 12:06:58 DB systemd[1]: redis.service start operation timed out. Terminating.
Aug 30 12:06:58 DB systemd[1]: Failed to start Redis.
Aug 30 12:06:58 DB systemd[1]: Unit redis.service entered failed state.
Aug 30 12:06:58 DB systemd[1]: redis.service failed.
Antwort1
Ok, das Problem war, dass die systemd
Unterstützung nicht standardmäßig kompiliert wird. Sie müssen sie explizit kompilieren. Ich werde einen PR schreiben, um README.md in den Quellen zu aktualisieren, da dies nicht erklärt wird.
Dasbegehenist für dieses Verhalten verantwortlich. Ich habe es in dieser Ausgabe gefunden:https://github.com/redis/redis/issues/7217
yum install systemd-devel
make BUILD_WITH_SYSTEMD=yes USE_SYSTEMD=yes