Leitura adicional

Leitura adicional

Estou tentando instalar o pacote da comunidade GitLab em um sistema Debian Stretch, mas uma de suas dependências, redis-server, falha na instalação ao iniciar o serviço usando o systemd.

Registro completo:

$ sudo dpkg --configure redis-server
Setting up redis-server (3:3.2.5-4) ...
Job for redis-server.service failed because the control process exited with error code.
See "systemctl status redis-server.service" and "journalctl -xe" for details.
invoke-rc.d: initscript redis-server, action "start" failed.
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Thu 2016-12-15 15:00:17 UTC; 31ms ago
 Docs: http://redis.io/documentation,
       man:redis-server(1)
  Process: 8764 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=227/NO_NEW_PRIVILEGES)
  Process: 8761 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=227/NO_NEW_PRIVILEGES)
 Main PID: 24283 (code=exited, status=227/NO_NEW_PRIVILEGES)

Dec 15 15:00:17 Serverdatorn-Debian systemd[1]: redis-server.service: Unit entered failed state.
Dec 15 15:00:17 Serverdatorn-Debian systemd[1]: redis-server.service: Failed with result 'exit-code'.
dpkg: error processing package redis-server (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 redis-server

Iniciar o redis-server executando o executável manualmente funciona perfeitamente:

$ sudo /usr/bin/redis-server /etc/redis/redis.conf
$ sudo tail /var/log/redis/redis-server.log
...
* The server is now ready to accept connections on port 6379

Se houver alguma outra informação que você queira que eu forneça, por favor me diga.

EDITAR:

Tentei configurar NoNewPrivilegesambos yese nono redis.servicearquivo, recarregar e iniciá-lo novamente, mas sem sorte, mesmo erro. Descobri que a execução journalctl -xemostrava outra mensagem que pode ser útil:

redis-server.service: Failed at step NO_NEW_PRIVILEGES spawning /usr/bin/redis-server: Invalid argument

Responder1

Eu acho que você está se deparando com esse resultado dosystemd NoNewPrivileges=directiva. Supondo que o redis-serverpacote geralmente funcione em sistemas Ubuntu 16.04, isso sugere que seu sistema pode personalizar configurações globais NoNewPrivileges=ou uma diretiva relacionada que está causando falha na inicialização do Redis.

Leia os documentos vinculados sobre NoNewPrivileges=e as diretivas relacionadas e, em seguida, pesquise em seu /etc/systemd/diretório para ver se algum desses valores foi personalizado em seu sistema. Caso contrário, confirme se o redispacote que você está instalando é realmente compatível com a versão do sistema operacional em que você está instalando.

Responder2

Isso foi levantado como um bug do Debian, em dezembro de 2017, mas o bug foi resolvido sem uma correção de serviço. Se você tiver os detalhes solicitados por Chris Lamb, forneça-os.

Um problema semelhante foi relatado para o pacote MariaDB 10.1 do Debian em julho de 2017, que foi fechado sem correção quando o pacote foi removido do Debian.

Acorreção localé alterar as configurações do serviço para ser

NoNewPrivileges=não
Dispositivos privados = não

Não edite /etc/systemd/system/redis.serviceou /usr/lib/systemd/system/redis-server.servicediretamente. Este último não deve ser editado manualmente pelos administradores locais, e o primeiro não é o arquivo da unidade de serviço real que vem com o pacote Debian.

Em vez disso, use systemctl edit redis.servicepara criar umarquivo drop-in da unidadee coloque as configurações lá. Isso também faz uma daemon-reloadoperação implícita, o que seria necessário fazer manualmente se estivéssemos modificando arquivos de unidade manualmente.

Para aqueles que estão tentando encontrar isso no pacote fonte: O pacote redis.servicee [email protected]os arquivos são gerados por um programa Debian chamadogenerate-systemd-service-files.

Este é um dos vários problemas que as pessoas tiveram com o uso dos mecanismos de restrição do systemd nas unidades de serviço que são geradas e empacotadas pelo pessoal do Debian. Outras são que sua ProtectHome=yesconfiguração impede o funcionamento de um link simbolicamente /home, em um bug da barra de lançamento, e que sua ReadOnlyDirectories=/configuração produz um código de erro 226/NAMESPACE, em perguntas e respostas do StackOverflow. Olocalfix assume a mesma forma para todos, um arquivo de unidade drop-in com uma substituição de configuração.

Leitura adicional

Responder3

Você pode definir PrivateDevices=false no arquivo de serviço systemd para fazê-lo funcionar.

Responder4

No meu caso, eu estava executando o kernel Linux antigo da versão anterior do Debian e alguns serviços falharam ao iniciar com o erro "(code=exited, status=227/NO_NEW_PRIVILEGES)". Por exemplo:

ExecStart=/lib/systemd/systemd-logind (code=exited, status=227/NO_NEW_PRIVILEGES)

Instalar o kernel da distribuição atual sudo apt-get install linux-image-amd64 && rebootresolveu meu problema.

informação relacionada