Eu tenho lutado com o mesmo problema por cerca de uma hora ...
TL; DR: Você deve comentar o
ReadOnlyDirectories=-/
em
/lib/systemd/system/redis-server.service
e emissão como sudo systemctl daemon-reload
Explicação detalhada:
Estou executando o Redis 3.2.6 em um sistema operacional Raspian Strech 9.4 e montei /var/log
as tmpfs
para diminuir a quantidade de gravações no cartão microSD do meu Raspberry Pi 3 B +.
ExecStartPre=-/bin/mkdir /var/log/redis
ExecStartPre=-/bin/chmod 750 /var/log/redis
ExecStartPre=-/bin/chown redis:redis /var/log/redis
Eu também adicionei alguns comandos de pré-inicialização no arquivo de serviço do Redis como mostrado acima, mas ele ainda não conseguiu criar o diretório, já que estava reclamando do estranho Read-only file system
issue ao inicializar:
May 08 19:17:48 pisky systemd[1]: Starting Advanced key-value store...
-- 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.
May 08 19:17:48 pisky mkdir[20564]: /bin/mkdir: cannot create directory ‘/var/log/redis’: Read-only file system
May 08 19:17:48 pisky chmod[20567]: /bin/chmod: cannot access '/var/log/redis': No such file or directory
May 08 19:17:48 pisky chown[20570]: /bin/chown: cannot access '/var/log/redis': No such file or directory
May 08 19:17:49 pisky run-parts[20572]: run-parts: executing /etc/redis/redis-server.pre-up.d/00_example
May 08 19:17:49 pisky redis-server[20580]: *** FATAL CONFIG FILE ERROR ***
May 08 19:17:49 pisky redis-server[20580]: Reading the configuration file, at line 163
May 08 19:17:49 pisky redis-server[20580]: >>> 'logfile /var/log/redis/redis-server.log'
May 08 19:17:49 pisky redis-server[20580]: Can't open the log file: No such file or directory
May 08 19:17:49 pisky wpa_supplicant[457]: wlan0: Failed to initiate sched scan
May 08 19:17:49 pisky systemd[1]: redis-server.service: Control process exited, code=exited status=1
May 08 19:17:49 pisky systemd[1]: Failed to start Advanced key-value store.
Parece que o uso de seu arquivo de serviço tem alguns parâmetros contraditórios, a saber:
# had to comment the below out, apparently this RO is exclusive
#ReadOnlyDirectories=-/
ReadWriteDirectories=-/var/lib/redis
ReadWriteDirectories=-/var/log/redis
ReadWriteDirectories=-/var/run/redis
A diretiva ReadOnlyDirectories
define /
como somente leitura, mas como /var/log/
está montado em /
, ela também é configurada como somente leitura ...
Esse problema foi descrito no Github , e eu tentei as respectivas soluções propostas, mas nenhuma delas funcionou, além de comentando a linha acima ...