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
doc/appunti/linux/sa/systemd.1463155355.txt.gz · Last modified: 2016/05/13 18:02 by niccolo