Recentemente encontrei a questão do assunto. Eu instalei o Debian 9 como um servidor web (com nginx, php7.0-fpm e algumas outras coisas) e eu quero usar o redis com a minha instalação do PHP. Ao instalá-lo a partir dos repositórios oficiais, o pacote é instalado bem, mas a unidade do systemd não consegue iniciar ou ativar. Quando tento executar manualmente o comando "ExecStart" do arquivo de unidade, o redis é iniciado corretamente e está operacional.
Aqui está o arquivo de unidade (fornecido pelo pacote Debian, eu não fiz modificações):
[Unit]
Description=Advanced key-value store
After=network.target
Documentation=http://redis.io/documentation, man:redis-server(1)
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/var/run/redis/redis-server.pid
TimeoutStopSec=0
User=redis
Group=redis
RunTimeDirectory=redis
ExecStartPre=-/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d
ExecStartPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-up.d
ExecStop=-/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d
ExecStop=/bin/kill -s TERM $MAINPID
ExecStopPost=-/bin/run-parts --verbose /etc/redis/redis-server.post-down.d
UMask=007
PrivateTmp=yes
LimitNOFILE=65535
PrivateDevices=yes
ProtectHome=yes
ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/redis
ReadWriteDirectories=-/var/log/redis
ReadWriteDirectories=-/var/run/redis
CapabilityBoundingSet=~CAP_SYS_PTRACE
# redis-server writes its own config file when in cluster mode so we allow
# writing there (NB. ProtectSystem=true over ProtectSystem=full)
ProtectSystem=true
ReadWriteDirectories=-/etc/redis
[Install]
WantedBy=multi-user.target
Alias=redis.service
Aqui está a saída do journalctl -xe depois de executar "systemctl start redis":
-- Subject: Unit redis-server.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit redis-server.service has begun starting up.
Aug 16 10:39:05 hathor systemd[9337]: redis-server.service: Failed at step NAMESPACE spawning /bin/run-parts: Too many levels of symbolic links
-- Subject: Process /bin/run-parts could not be executed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The process /bin/run-parts could not be executed and failed.
--
-- The error number returned by this process is 40.
Aug 16 10:39:05 hathor systemd[9340]: redis-server.service: Failed at step NAMESPACE spawning /usr/bin/redis-server: Too many levels of symbolic links
-- Subject: Process /usr/bin/redis-server could not be executed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The process /usr/bin/redis-server could not be executed and failed.
--
-- The error number returned by this process is 40.
Aug 16 10:39:05 hathor systemd[1]: redis-server.service: Control process exited, code=exited status=226
Aug 16 10:39:05 hathor systemd[1]: Failed to start Advanced key-value store.
-- Subject: Unit redis-server.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit redis-server.service has failed.
--
-- The result is failed.
Aug 16 10:39:05 hathor systemd[1]: redis-server.service: Unit entered failed state.
Aug 16 10:39:05 hathor systemd[1]: redis-server.service: Failed with result 'exit-code'.
E aqui está a mensagem de erro que "systemctl enable redis" fornece, que é o mais enigmático para mim:
root /lib/systemd/system $ systemctl enable redis
Failed to enable unit: Refusing to operate on linked unit file redis.service
root /lib/systemd/system $ systemctl enable redis-server
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable redis-server
O arquivo de unidade não é um link simbólico, é um arquivo normal:
-rw-r--r-- 1 root root 1.2K Aug 16 10:32 redis-server.service
Nenhum ponto em / etc /, / var / run são links simbólicos ou mountpoins. Apenas uma montagem em / mnt / backup existe neste servidor. Também devo mencionar que este servidor é um VPS em um host OpenVZ. A versão do Systemd é 232, o Debian está totalmente atualizado para a versão mais recente dos pacotes com o kernel 3.16.6-042stab123.8.
Agradecemos antecipadamente por qualquer conselho!
Felicidades, Johny