Come mandare in crash systemd

2

systemd-logo

 

Inutile dirlo, la logica di funzionamento di systemd, che piaccia o meno, può essere comoda per diversi aspetti. La sua ampia integrazione con tutto il sistema Linux porta dei vantaggi, a scapito della semplicità e -ed è proprio il caso di dirlo- della robustezza data dall’avere piccoli software estremamente specializzati ed ottimizzati.

Proprio per questo motivo, systemd ha sempre sofferto di alcune lacune lato sicurezza; l’ultima portata all’attenzione degli utenti, anche se risulta introdotta in un commit risalente a più di 2 anni fa, affligge il sistema di notifica inter-processo di systemd:

NOTIFY_SOCKET=/run/systemd/notify systemd-notify “”

Questo semplice comando, lanciato da qualisiasi utente del sistema, fa si che il PID 1, ovvero quello che si occupa di gestire il sistema di init, si blocchi nella chiamata di sistema pause(). Gli effetti, all’atto pratico, sono i seguenti:

  • Non sarà più possibile avviare e fermare i demoni
  • I servizi inetd non accetteranno più connessioni
  • Non sarà più possibile effettuare un riavvio “pulito” del sistema
  • In generale, l’intero sistema diventerà instabile (ad esempio ssh e su rimangono in attesa fino a 30 secondi)

Nonostante alcuni utenti affermano di poterlo riprodurre solo inserendo il comando all’interno di un ciclo while true, molti ne hanno sempre evidenza.

Nonostante i blocchi del PID 1 non siano così rari, negli ultimi anni problemi di questo tipo affliggono sempre più spesso il nuovo sistema di init integrato e, probabilmente, la casistica è così elevata poichè systemd stesso è così tanto complesso ed introduce così tanti elementi esterni e -normalmente- non necessariamente legati al processo di init, che bug in un progetto di tali dimensioni sono decisamente più comuni.

Un’analisi -critica- più approfondita può essere letta a questo link.

Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.

2 risposte a “Come mandare in crash systemd”

  1. Avatar Carlo Denaro
    Carlo Denaro

    la pratica del buon software dice, FAI UNA COSA e FALLA BENE.. non farne 2039209302 e tutte a merda
    esempio di COME non scrivere codice, systemd

  2. Avatar MEP MEP
    MEP MEP

    Ed e’ solo l’inizio…spero si torni presto indietro: KISS, molti piccoli progetti, ognuno focalizzato su una funzione e per questa ottimizzato: queste cose hanno permesso la stabilità e le performance di Linux. Sicuramente meglio di un unico minestrone difficile da manutenere/testare con difficoltà per contribuire agli sviluppi futuri.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *