Como iniciar o serviço não-systemd no Ubuntu 16.04

1

Instalei o pacote fwknop-server no Ubuntu 16.04 recém-instalado e tentei iniciar seu daemon. O pacote não fornece o arquivo systemd unit e, em vez disso, usa scripts init antigos que são relatados como active(exited) :

$ service fwknop-server status
● fwknop-server.service - LSB: start and stop fwknopd
   Loaded: loaded (/etc/init.d/fwknop-server; bad; vendor preset: enabled)
   Active: active (exited) since Sat 2016-10-01 18:24:16 CEST; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 32581 ExecStop=/etc/init.d/fwknop-server stop (code=exited, status=0/SUCCESS)
  Process: 32618 ExecStart=/etc/init.d/fwknop-server start (code=exited, status=0/SUCCESS)

Oct 01 18:24:16 fwknop systemd[1]: Starting LSB: start and stop fwknopd...
Oct 01 18:24:16 fwknop systemd[1]: Started LSB: start and stop fwknopd.

$ ps aux | grep fwknop
jakuje   32727  0.0  0.0  14224   928 pts/0    S+   19:11   0:00 grep --color=auto fwknop

Iniciar ou parar não altera o status nem inicia o fwknopd . Essa é uma pergunta mais geral sobre o serviço init.d "legado", mas aceito respostas razoáveis que se encaixam no próprio fwknop , exceto iniciar o fwknop manualmente.

Editar:
A máquina virtual tem uma interface de rede diferente da esperada por fwknop . Isso pode ser corrigido modificando /etc/fwknop/fwknop.config com

PCAP_INTF                   ens3;

mas ainda assim o serviço não está sendo iniciado.

    
por Jakuje 01.10.2016 / 19:14

1 resposta

3

TL; DR:

Altere START_DAEMON="yes" no arquivo /etc/default/fwknop-server .

Explicação

  

O pacote não fornece o arquivo de unidade do systemd […]

Debian e Ubuntu não. Os autores do software, no entanto, fazem:

Isso pode ser melhorado:

[Unit]
Documentation=http://askubuntu.com/a/832231/43344
Description=Firewall Knock Operator Daemon
After=network-online.target

[Service]
RuntimeDirectory=fwknop
RuntimeDirectoryMode=0700
ExecStart=/usr/sbin/fwknopd --foreground
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Lennart Poettering escreveu em 2011 :

Muitas das definições de configuração em /etc/sysconfig permitem desabilitar serviços. Por isso eles basicamente se tornam um segundo nível de habilitação / desabilitação sobre o que o sistema init já oferece: quando um serviço é habilitado com systemctl enable ou chkconfig on estas configurações sobrescrevem isto, e liga o daemon de [f] mesmo que o init sistema foi configurado para iniciá-lo. Isso, obviamente, é muito confuso para o usuário / administrador e praticamente não traz benefícios.

E isso é exatamente o que o script van Smoorenbug rc no seu pacote está fazendo:

START_DAEMON="no"
DAEMON_ARGS=""
[ -r /etc/default/fwknop-server ] && . /etc/default/fwknop-server

# Exit if the dameon must not be started
[ "$START_DAEMON" = "yes" ] || exit 0
    
por JdeBP 02.10.2016 / 15:56