This is an old revision of the document!
Table of Contents
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
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
.