Quando você inicia o serviço manualmente a partir da linha de comando (sem usar o comando nohup
prefix ou o sufixo &
para executá-lo em segundo plano), o que acontece?
a) Se o serviço iniciar e continuar em execução, o prompt não retornará até que você pressione Control-C ou pare o serviço de alguma outra forma: então Type = simple
é a escolha certa.
b) Se o prompt retornar, mas o serviço continuar rodando em segundo plano (ou seja, o serviço se auto-sincronizar sozinho), então Type = forking
é a escolha certa.
c) Se o serviço faz seu trabalho e retorna ao prompt sem deixar nada em execução (ou seja, o serviço apenas ajusta algumas configurações do kernel, envia um comando para outra coisa ou faz algo similar), então Type = oneshot
é provavelmente o direito escolha. Neste caso, ExecStart
do serviço pode ser o comando para "setar" algo, e ExecStop
seria o comando correspondente para "desconfigurar". Este tipo geralmente se beneficia de RemainAfterExit=true
, então o systemd irá acompanhar o "estado" deste serviço de acordo com o fato de a coisa ter sido "set" ou "unset" mais recentemente.
Os outros valores Type
são casos especiais. Por exemplo, se o serviço utiliza uma conexão D-Bus, então Type = dbus
pode ser a melhor escolha. Isso torna systemd
ciente do fato e, em seguida, o systemd rastreará esse serviço (e qualquer coisa que dependa dele) pela presença desse serviço no D-Bus.