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.