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