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
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 unit 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
.