systemd stop service na remoção do pacote

0

Eu fiz um * .deb com um serviço:

[Unit]
Description=Hello example service
Wants=nginx

[Service]
Type=simple
ExecStart=/usr/local/bin/hello

TimeoutStopSec=15
Restart=always

postinst script (não afeta nada, exceto dar algum erro durante a instalação, se usado: update-rc.d: error: initscript does not exist: /etc/init.d/hello ):

update-rc.d hello defaults
invoke-rc.d nginx reload
O script

prerm debian é:

invoke-rc.d hello stop

Este script não interrompe o serviço. Não funciona mesmo se lançado manualmente. Retorna 102 todas as vezes.

systemctl stop funciona bem para o meu serviço.

De alguma forma, o invoke-rc.d funciona para o servidor da Web:

sudo invoke-rc.d nginx stop

O que está acontecendo?

    
por Velkan 30.04.2015 / 14:26

1 resposta

2

O comando invoke-rc.d é para scripts init sysv (como diz a sua página de manual), não para o Upstart ou systemd. O Nginx ainda tem um script de init sysv (procure init.d na lista de arquivos ), que é provavelmente porque invoke-rc.d trabalha para ele (ou parece, de qualquer forma).

Mesmo que os guias Debian usem invoke-rc.d , no Ubuntu, prefira usar o comando service . É um script wrapper que pode manipular arquivos init, upstart e systemd.

A documentação do systemd recomenda usar service também:

% bl0ck_qu0te%

Claro, para o Ubuntu, service está localizado em /usr/sbin/service .

    
por muru 30.04.2015 / 15:04