GNU/Linux >> Linux Esercitazione >  >> Linux

Impossibile scollegare il processo figlio quando il processo principale viene avviato da systemd

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.


Linux
  1. Come accelerare il processo di compilazione durante l'installazione di pacchetti da AUR

  2. Perché Sigint non viene propagato al processo figlio quando viene inviato al processo padre?

  3. Arrestare/interrompere un processo dalla riga di comando dopo un certo periodo di tempo?

  4. Come ottenere il processo figlio dal processo padre

  5. Posso avviare Linux da un VHD?

Come ottenere il PID dal processo figlio biforcuto nello script della shell

Come interrompere il servizio systemd

È possibile applicare un determinato codice di uscita quando si utilizza kill per interrompere un processo?

Come posso leggere l'input dalla tastiera host quando sono connesso tramite SSH?

In che modo systemd gestisce la morte di un figlio di un processo gestito?

Linux - Come posso vedere quando è iniziato un processo?