arquivo de serviço Systemd para assp

2

Estou executando o ASSP no CentOS 7, que usa o systemd. O único arquivo de serviço pré-fabricado que eu pude encontrar ( howtoforge.com ) usa um tipo que não tenho certeza que está certo. Mais importante, o comando stop parece matar todos os programas perl que estou executando (então eu comentei isso). Mas agora não tenho certeza se está parando corretamente no desligamento. Alguém pode aconselhar sobre como melhorar o arquivo de serviço:

[Unit]
Description=AntiSpam SMTP Proxy
After=network.target

[Service]
Type=Simple
Environment=PERL5LIB=/root/perl5/lib/perl5/
ExecStartPre=-rm -f /usr/local/assp/pid
ExecStart=/usr/bin/perl /usr/local/assp/assp.pl /usr/local/assp/
ExecStopPost=-rm -f /usr/local/assp/pid

[Install]
WantedBy=multi-user.target
    
por TSG 02.09.2018 / 18:44

1 resposta

1

Type=oneshot não faz sentido para nenhum programa que seja executado continuamente, seja como um daemon ou de outra forma. Então você está certo sobre isso. Você de fato encontrou outro mau tutorial na Internet (em um site infame para eles; e esse tutorial tem muitos outros problemas também).

A partir da revisão do script de inicialização de amostra no wiki do assp, parece que o programa é executado em primeiro plano e não se daemoniza sozinho. Type=simple (o padrão) é apropriado para esse tipo de serviço.

Uma linha ExecStop= geralmente não é necessária para um serviço Type=simple , já que o systemd já sabe qual processo parar. Isso só seria necessário para algo com um procedimento de parada incomum, mas o assp apenas aceita um sinal e termina, como qualquer outro processo. Você pode omitir esta linha.

Além desses problemas, você duplicou uma linha ExecStartPre= . Você provavelmente só precisará disso uma vez. Você também pode querer definir o WorkingDirectory= para o diretório onde você instalou o assp, já que o script init do estilo antigo também fazia isso.

    
por 02.09.2018 / 22:44