KillUserProcesses

Dom, 26/06/2016 - 23:10
Ritratto di mcortese

KillUserProcesses

Inviato da mcortese 0 commenti

Su LWN, ras riassume egregiamente come GNOME e systemd siano ugualmente responsabili della catena di eventi che ha portato ad attivare d'ufficio KillUserProcesses, l'opzione che termina tutti i processi di un utente quando questi fa il logout.

ras ha scritto:


Faccio fatica a distinguere tra GNOME e systemd. [...] Ecco, grossomodo, quello che è successo.

  1. All'inizio esisteva login. Ogni processo lanciato dopo era figlio di login: era semplice per il kernel tener traccia di tali figli e facile far pulizia al logout.
  2. Poi X e xdm rimpiazzarono login, ma poiché ogni processo era figlio di xdm, restava facile far pulizia al logout.
  3. Poi arrivò GNOME, e GDM, e poi corba. Le cosse divennero subito più complicate, ma ogni processo era comunque figlio di GDM e far pulizia al logout rimase semplice.
  4. GNOME adottò dbus.
  5. systemd inglobò dbus.
  6. systemd si appropriò della funzione di session manager, in particolare tramite logind.
  7. GNOME adottò immediatamente logind attirandosi non poche polemiche nel mondo Debian perché ora l'ambiente desktop predefinito si portava dietro una dipendenza da systemd.
  8. GNOME iniziò a usare dbus per avviare i suoi servizi.
  9. systemd decise di avviare dbus sotto un albero di processi separato (sotto "systemd --user", piuttosto che sotto GDM).
  10. GNOME iniziò a notare che se l'utente si loggava due volte, partivano due volte gli stessi servizi, ad esempio evolution-address-book. Sembrando inefficiente, decise di usare servizi condivisi tra più sessioni dello stesso utente. Ma solo alcuni servizi.
  11. A questo punto tener traccia di quale processo apparteneva a quale sessione diventò difficile. Qualcosa non veniva terminato correttamente al logout. Poiché era logind a tener traccia delle sessioni, sembrò naturale che la pulizia rientrasse sotto l'egida di systemd. Fu implementato KillUserProcesses e fine dei problemi di GNOME.
  12. Ma nessuno sembrava abilitare KillUserProcesses e le sessioni GNOME continuavano a lasciare servizi per strada. Perciò systemd-230 iniziò ad abilitarlo d'ufficio.