#howto - Introduzione a systemd

Scritto da il
fedora
ubuntu
arch linux

systemd è 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.

Systemd dark

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

Systemd status

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.