La soluzione è aggiungere
KillMode=process
al blocco servizi. Il valore predefinito è control-group
il che significa che systemd ripulisce tutti i processi figli.
Da man systemd.kill
KillMode=Specifica come devono essere terminati i processi di questa unità. Uno digruppo di controllo, processo, misto, nessuno.
Se impostato su control-group, tutti i processi rimanenti nel gruppo di controllo di questa unità verranno terminati all'arresto dell'unità (per i servizi:dopo l'esecuzione del comando stop, come configurato con ExecStop=). Se impostato su process, viene terminato solo il processo principale stesso. Se impostato su mixed, il segnale SIGTERM (vedi sotto) viene inviato al processo principale mentre il successivo segnale SIGKILL (vedi sotto) viene inviato a tutti i restanti processi del gruppo di controllo dell'unità. Se impostato su none, nessun processo viene terminato. In questo caso, solo il comando di arresto verrà eseguito all'arresto dell'unità, ma nessun processo verrà terminato in caso contrario. I processi che rimangono attivi dopo l'arresto vengono lasciati nel loro gruppo di controllo e il gruppo di controllo continua a esistere dopo l'arresto a meno che non sia vuoto.