ubuntu - Por que modificações no script init.d são ignoradas

3

Estou usando o Ubuntu Server 14.04. Depois de fazer a modificação para /etc/init.d/gearman-job-server e digite:

# sudo service gearman-job-server restart

ignora a modificação que fiz. Mas então eu digito:

# /etc/init.d/gearman-job-server restart

tudo funciona. Esses scripts estão agora no Ubuntu 14.04 estão em cache em algum lugar?

    
por happy_marmoset 13.07.2015 / 14:18

2 respostas

4

Depois de ter um problema semelhante no Ubuntu 15.10 tentando mudar o endereço de escuta, descobri que os scripts tradicionais do init são ignorados, e a configuração do systemd é codificada para ouvir apenas no 127.0.0.1.

A solução é modificar a configuração do systemd, recarregá-la e, em seguida, reiniciar o serviço.

Modifique a configuração

A configuração pode ser modificada diretamente ou por meio de um arquivo de substituição.

Via modificação direta

A configuração do serviço systemd está localizada em /lib/systemd/system/gearman-job-server.service . Edite esse arquivo e altere a linha ExecStart para incluir os parâmetros necessários.

Por meio de um arquivo de substituição

Crie o arquivo /etc/systemd/system/gearman-job-server.service.d/gearman-job-server.conf .

Coloque a seguinte configuração no arquivo para substituir o comando ExecStart.

[Service]
ExecStart=
ExecStart=/usr/sbin/gearmand --pid-file=/run/gearman/server.pid --log-file=/var/log/gearman-job-server/gearman.log

A linha ExecStart= vazia é necessária para remover a linha de comando original. Sem ele, o sistema tentaria executar tanto o original quanto o personalizado.

Recarregue a configuração

Execute o seguinte comando para que o systemd recarregue a configuração do serviço

/bin/systemctl daemon-reload

Reinicie o serviço

service gearman-job-server restart
    
por 28.10.2015 / 01:32
2

Ao usar sudo service Ubuntu 12.04 e o Ubuntu 14.04, primeiro procuraremos o script de inicialização em /etc/init (upstart) e, em seguida, /etc/init.d , para que ele primeiro encontre esse script:

/etc/init/gearman-job-server.conf

e depois

/etc/init.d/gearman-job-server

Além disso, há também bug no gearman-job-server.conf, que é descrito aqui .

    
por 13.07.2015 / 15:14