7.1 Introduzione a Systemd
Systemd è un gestore di sistema e di servizi per GNU/Linux. Fornisce un manager di sistema e servizi che è avviato con PID 1 e avvia il resto del sistema. Systemd fornisce potenti capacità di parallelizzazionne, usa attivazioni socket e D-Bus per avviare i servizi, offre inizializzazioni di demoni su richiesta, tiene traccia dei processi usando Linux cgroups, supporta lo snapshotting ed il ripristino dello stato del sistema, mantiene il mount e l’automount ed implementa un servizio logico di controllo.
In sostanza, con i giusti comandi, si posso avere informazione dettagliate su tutti i processi che vengono avviati all’avvio del sistema operativo, disabilitando ad esempio quelli che non ci servono o che rallentano in maniera vistosa il sistema operativo.
Esercizio 7a
- Installa il pacchetto openssh-server
Puoi verificare se un pacchetto è installato con
dpkg -s nomepacchetto
7.2 Esplorare le systemd unit
Systemd inizializza e supervisiona l’intero sistema ed è basato sul concetto di unit composto da nome/tipo del file di configurazione da maneggiare. Alcuni tipi di unit possono essere: servizi (.service), come per esempio demoni, dispositivi (.device), punti di montaggio (.mount), operazioni pianificate o ricorrenti (.timer) ecc.
Il principale comando usato per controllare systemd è systemctl.
Mostra lo stato del sistema
systemctl status
Lista della unità attive
systemctl
Lista delle unità che hanno avuto problemi
systemctl --failed
Esercizio 7b
- Esplora le systemd unit attive
- Controlla i file di configurazione del server SSH (/etc/ssh/sshd_config)
7.3 Avviare/fermare una systemd unit
Attivare immediatamente una unit
systemctl start unit
Fermare immediatamente una unit
systemctl stop unit
Riavviare una unit
systemctl restart unit
Ricaricare la configurazione di una unit
systemctl reload unit
Mostrare lo stato di una unit, compreso se sta funzionando o no
systemctl status unit
Se non viene specificato il suffisso della unit, systemd dà per scontato che sia .service: scrivere “openssh-server.service” è del tutto equivalente a “openssh-server”.
Esercizio 7c
- Avviare la unit openssh-server.service
- Verificare l’avvenuto avvio del servizio
- Fermare la unit openssh-server.service
- Verificare l’avvenuto fermo del servizio
7.4 Abilitare una unit in modo tale da ottenere l’avvio automatico
Attivare l’avvio automatico al boot
systemctl enable unit
Attivare l’avvio automatico al boot e avviare immediatamente una unit
systemctl enable --now unit
Disattivare l’avvio automatico al boot
systemctl disable unit
Mostra la pagina del manuale associata a una unità (non supportato dai file .unit)
systemctl help unit
Ricaricare systemd, controllo per nuove o modificate unità
systemctl daemon-reload
Per verificare che la unit sia abilitata all’avvio usare il seguente comando, se l’output ritornato è enable, significa che l’unità è abilitata all’avvio:
systemctl is-enabled unit
Esercizio 7d
- Disattiva l’avvio automatico della unit openssh-server.service
- Riavvia GNU/Linux e verifica che il servizio sia fermo
- Attiva l’avvio automatico della unit openssh-server.service
- Riavvia GNU/Linux e verifica che il servizio sia avviato
7.5 Statistiche sull’avvio del sistema operativo
Altri comandi utili, da utilizzare dopo l’avvio del sistema operativo, possono essere
systemd-analyze
è un comodo tool che fornisce statistiche sui tempi di avvio del sistema operativo.
Si posso avere statiche più dettagliate di ogni singolo processo che viene avviato durante il caricamento del sistema operativo, aggiungendo il paramentro blame
systemd-analize blame
Esercizio 7e
- Visiona le statistiche di avvio del tuo GNU/Linux
Sommario
Comando | Significato |
---|---|
systemctl status |
Stato del sistema |
systemctl | Lista delle unit attive |
systemctl –failed | Lista delle unit che hanno avuto problemi |
systemctl start unit | Attivare immediatamente una unit |
systemctl stop unit | Fermare immediatamente una unit |
systemctl enable unit | Attivare l’avvio automatico al boot |
systemctl is-enabled unit | Verificare che la unit sia abilitata all’avvio |
systemd-analyze | Statistiche avvio sistema operativo |
systemd-analyze blame | Statistiche dettagliate avvio sistema operativo |