Systemd

Loris Tissino

6 febbraio 2018

Systemd

Servizi come unità di base

Systemd gestisce molte attività di base del sistema, sostituendo anche parti che precedentemente erano gestite autonomamente (come il sistema cron).

Gli oggetti gestiti si chiamano "unità" (unit).

Elenco delle unità

sudo systemctl list-units

sudo systemctl list-units --all

sudo systemctl list-unit-files

Gestione dei servizi

Avvio

sudo systemctl start syslog

Interruzione

sudo systemctl stop syslog

Verifica dello stato

sudo systemctl status syslog.service 

Riavvio

sudo systemctl restart syslog.service 

Rilettura della configurazione

sudo systemctl reload syslog.service 

Informazioni di log

Visualizzazione log

journalctl

journalctl -b # dall'ultimo bootstrap

journalctl -k # del kernel

sudo journalctl -f -u apache2 # log tail per il server web

Informazioni sull'unità

systemctl cat syslog
# configurazione

systemctl list-dependencies syslog
# dipendenze

Modifiche della configurazione di un'unità

sudo systemctl edit --full syslog.service

Target

I target rappresentano punti di sincronizzazione che servono a definire quali servizi attivare per portare il server ad un determinato stato.

Elenco dei target

systemctl list-unit-files --type=target

Target di default

systemctl get-default

Spegnimento e riavvio

Spegnimento

sudo systemctl poweroff

Riavvio

sudo systemctl poweroff

Esercizi

Oneshot

Provare a creare un proprio servizio "oneshot" predisponendo un file /etc/systemd/system/oneshot.service con il seguente contenuto:

[Unit]
Description=Our test oneshot service
   
[Service]
Type=oneshot
ExecStartPre=/bin/echo "Starting"
ExecStart=/bin/echo "Hello World"
ExecStopPost=/bin/echo "Stopping"

Avviare il servizio con

sudo systemctl start oneshot

Dare un'occhiata al log con

journalctl -u oneshot

systemctl status oneshot

(continuare con le indicazioni di Vidar Hokstad...)