Bifurcação em um script systemd

4

Eu quero que o serviço systemd cuide de bifurcação (meu arquivo não suporta bifurcação por si só. Por isso, estou contando com o systemd para lidar com isso)

Meu arquivo de serviço:

[Unit]
Description=swamp services management service
After=syslog.target

[Service]
Type=forking
ExecStart=/usr/bin/swamp

[Install]
WantedBy=multi-user.target

Pergunta

Está especificando Type=forking o suficiente para o que estou tentando alcançar? Ou é semelhante esperar que o forking no upstart realmente diga ao upstart (se eu entendi corretamente, não tenho certeza se faço isso, sou novo em escrever initscripts) que meu serviço trataria de forking / daemonizing.

    
por alonisser 21.04.2014 / 01:44

1 resposta

9

O systemd possui excelente documentação. Veja a página nos arquivos de serviço :

If set to forking, it is expected that the process configured with ExecStart= will call fork() as part of its start-up. The parent process is expected to exit when start-up is complete and all communication channels are set up. The child continues to run as the main daemon process. This is the behavior of traditional UNIX daemons. If this setting is used, it is recommended to also use the PIDFile= option, so that systemd can identify the main process of the daemon. systemd will proceed with starting follow-up units as soon as the parent process exits.

Portanto, usar esse type apenas dirá ao systemd para esperar até que swamp retorne e, em seguida, considere que ele ainda está em execução: fazer isso acontecer continua sendo de sua responsabilidade ...

    
por 21.04.2014 / 03:30

Tags