Cosa sono i leader di sessione, come in ps -d
che seleziona tutti i processi tranne i leader di sessione?
Risposta accettata:
In Linux, ogni processo ha diversi ID associati, inclusi:
-
ID processo (PID)
Questo è un numero arbitrario che identifica il processo. Ogni processo ha un ID univoco, ma dopo che il processo è terminato e il processo padre ha recuperato lo stato di uscita, l'ID processo viene liberato per essere riutilizzato da un nuovo processo.
-
ID processo padre (PPID)
Questo è solo il PID del processo che ha avviato il processo in questione. Se il processo padre esce prima del figlio, il PPID del figlio viene modificato in un altro processo (di solito PID 1).
-
ID gruppo di processo (PGID)
Questo è solo il PID del leader del gruppo di processo. Se PID ==PGID, allora questo processo è un leader del gruppo di processi.
-
ID sessione (SID)
Questo è solo il PID del leader della sessione. Se PID ==SID, allora questo processo è un leader di sessione.
Sessioni e gruppi di processi sono solo modi per trattare una serie di processi correlati come un'unità. Tutti i membri di un gruppo di processi appartengono sempre alla stessa sessione, ma una sessione può avere più gruppi di processi.
Normalmente, una shell sarà un leader di sessione e ogni pipeline eseguita da quella shell sarà un gruppo di processi. Questo per rendere facile uccidere i figli di una shell quando esce. (Vedi uscita(3) per i dettagli cruenti.)
Non credo ci sia un termine speciale per un membro di una sessione o di un gruppo di processo che non sia il leader.