#howto - Introduzione a systemd
linux/hub Scritto da Niccolò Martiri ilsystemd è un init system, gestore dei servizi e molto altro. Egli, essendo il primo processo avviato dal kernel al boot, avrà PID 1 e dal suo avvio inizierà ad inizializzare il sistema, avviando tutti i servizi necessari. Ma systemd è anche più di questo, egli è anche fornito di un set di funzioni di gestione del sistema, che vanno da un boot loader, ad un software di gestione della rete e molti altri.
systemd è stato sviluppato da Red Hat e dal suo rilascio, una gran parte delle distro è passato a questo sistema di init, tra cui Ubuntu, Arch Linux e Fedora.
Come funziona systemd
Per l'appunto, systemd ha le funzioni di gestione dei servizi e init system, quindi all'avvio eseguirà tutte le procedure per completare il boot del nostro sistema e avvierà tutti i servizi utili al funzionamento di esso (es. NetworkManager, bluetooth).
Dopo il boot systemd continua a dare supporto all'utente con varie utility, come ad esempio systemd-networkd, per la gestione delle reti, ma uno strumento che possiamo usare prima dell'avvio di linux, systemd-boot, un bootloader, a mio parere molto veloce.
systemd all'avvio
All'avvio systemd procede col montare delle partizioni come definito nell'fstab. Dopo di questo, cerca il default.target, che è un link a uno dei target disponibili, solitamente graphical.target, sui server solitamente si usa multi-user.target, specifico per CLI, invece graphical è specifico per GUI. Quindi systemd avvierà tutti i servizi richiesti da quel target e procederà ad avviare servizi primari, secondari e il Display Manager.
Comandi base
Come già detto, systemd ci permette anche di gestire i servizi, per farlo dobbiamo usare un tool integrato in systemd, systemctl, che ci permette tra le cose di spegnere, riavviare e sospendere il dispositivo, ma appunto anche abilitare, disabilitare, fermare e avviare i servizi.
Facciamo un esempio, se volessimo abilitare systemd-networkd dobbiamo prima abilitare il suo servizio, e per farlo dobbiamo usare:
sudo systemctl enable systemd-networkd.service
sudo systemctl start systemd-networkd.service
# Possiamo anche abilitarlo e avviarlo in un solo comando
sudo systemctl enable systemd-networkd.service --now
Con systemctl possiamo inoltre vedere lo status di un servizio:
systemctl status systemd-networkd.service
qui possiamo vedere se il servizio è attivo, disattivo oppure se ha avuto un problema.
Conclusioni
Questo è un primo inizio di gestione dei servizi con systemd, ma ci sono molte altre opzioni di gestione e daemon utili per l'utente. Nel prossimo articolo vedremo una gestione più approfondita dei servizi e della risoluzione dei problemi legata all'avvio, di servizi o sistema, usando journalctl.
Per dubbi o chiarimenti non esitate a chiedere nel nostro gruppo telegram.