User Tools

Site Tools


doc:appunti:linux:sa:systemd

This is an old revision of the document!


Systemd

Comandi di servizio

Quando si modifica qualche file di configurazione (ad esempio gli script in /etc/init.d/, oppure gli unit files in /lib/systemd/system/) è necessario notificare systemd in modo che rilegga tutte le dipendenze, ecc:

systemctl daemon-reload

Per vedere lo stato di una unit (ad esempio di un servizio) ed anche le ultime righe di log:

systemctl status snmpd.service
● snmpd.service - LSB: SNMP agents
   Loaded: loaded (/etc/init.d/snmpd)
   Active: active (running) since Fri 2016-04-15 17:08:29 CEST; 3 weeks 6 days ago

Lo stato loaded significa che la unit è stata presa in carico da systemd, non che sia effettivamente avviata e in esecuzione.

Lo stato di attivazione active oppure inactive indica se il servizio sta girando oppure no. I tradizionali script di start/stop in /etc/init.d/ consentono di passare da uno stato all'altro, ma il metodo suggerito è il nuovo:

systemctl stop snmpd.service
systemctl start snmpd.service

Per disabilitare o abilitare un servizio (quindi creare i vari link simbolici /etc/rc[0123456S].d/ che attivano il processo ai vari runlevel:

systemctl disable snmpd.service
systemctl enable snmpd.service

Contrariamente a quanto si potrebbe immaginare i comandi status o is-enabled non mostrando se il servizio è abilitato o disabilitato. È necessario ispezionare la proprietà Before con il comando show, che è differente nei due casi:

systemctl disable snmpd
systemctl show snmpd.service | grep Before
Before=shutdown.target

systemctl enable snmpd
systemctl show snmpd.service | grep Before
Before=multi-user.target graphical.target shutdown.target

OpenVPN con systemd

Ci sono delle novità su come avviare da riga di comando una connessione OpenVPN su Debian 8 (Jessie).

Una configurazione tipica per una workstation è quella di NON attivare le vpn al bootstrap, mettendo in /etc/default/openvpn:

AUTOSTART="none"

Questa impostazione funziona ancora, ma con il nuovo systemd non è più possibile passare argomenti agli script start stop, quindi per avviare uno specifico tunnel non funziona più il comando

/etc/init.d/openvpn start VPN_NAME

Funzionano invece i seguenti comandi per attivare o disattivare la singola VPN:

systemctl start openvpn@VPN_NAME
systemctl stop openvpn@VPN_NAME

ATTENZIONE Se si modifica il file /etc/default/openvpn, non basta fermare e far ripartire il servizio, ma bisogna disabilitarlo e riabilitarlo:

systemctl stop openvpn
systemctl disable openvpn
systemctl enable openvpn
systemctl start openvpn

Servizi, Unit file, ...

Servizi enabled, disabled, masked, ...

Le due condizioni più comuni per un servizio sono enabled o disabled, a seconda che debba essere avviato automaticamente al boot oppure no.

La condizione masked di alcuni file è equivalente a disabled, ma previene anche l'avvio manuale del servizio. Se un file è disabled i suoi link simbolici sono rimossi, se è masked esso viene linkato a /dev/null.

doc/appunti/linux/sa/systemd.1510045380.txt.gz · Last modified: 2017/11/07 10:03 by niccolo