systemd

il gestore del sistema

systemd

È il processo chiamato dal kernel di linux per occuparsi delle impostazioni di sistema, inizializza in generale tutti i servizi in esecuzione su una macchina. Usualmente la "d" in fondo al nome di un programma indica che questo resterà in esecuzione pur non avendo una interfaccia.

Allo stesso tempo con il nome systemd identifica anche il gruppo di programmi per la gestione di questo sistema di avvio.

Siccome systemd può avviare dei programmi (servizi in altri ambienti... ) dovremmo poter vedere quali servizi ho a disposizione (attenzione che sono molti, più di 300 nel mio caso), posso farlo in modo da avere anche informazioni su lloro stato.

systemctl list-unit-files pattern_opzionale

sarebbe a dire che posso scrivere

systemctl list-unit-files

potrebbero comparire alcuni servizi il cui stato è "static" il che significa che non possono essere abilitati/disabilitati ma vengono avviati soltanto manualmente o se altri servizi hanno bisogno di loro

systemctl list-unit-files "*net*"

elencherà soltanto i servizi che hanno "net" nel loro nome.

start / stop

Ovviamente è possibile avviare/abilitare i singoli servizi, attenzione che un servizio abilitato partià ad ogni avvio del sistema mentre uno avviato verrà semplicemente avviato in questo momento.

systemctl enable nome_servizio
systemctl start nome_servizio

Analogamente posso ottenere informazioni sullo stato di un servizio:

systemctl status servizio

networking

il servizio betworking avvia il vecchio sistema (ifupdown) mentre il secondo ha un sistema di configurazione suo. Disattivando questo servizio loop back viene attivata comunque FIXME: conferma.

systemd-networkd

È il servizio che si occupa dell'attivazione delle interfacce di rete

Legge i file in /etc/systemd/network/ (e anche da altre parti) che terminano in .network (ogni connessione in un file diverso), il servizio va abilitato perché per default è disattivato (almeno su stretch 2017-02-22 FIXME: conferma).

Scrivere un servizio per systemd

Va aggiunto un file x.service in /etc/systemd/system/ (la cartella è questa anche se anche alcuni pacchetti mettono roba qui) che contiene al minimo una cosa così

[Unit]
Description=Add Firewall Rules to iptables

[Service]
Type=oneshot
ExecStart=/etc/firewall/enable.sh

[Install]
WantedBy=multi-user.target

Bibliografia

How To Use Systemctl to Manage Systemd Services and Units (Digital Ocean)

ArchLinux forum, FIXME: da cercare fonte migliore

man:interfaces(5)