Questa guida è finalizzata alla disattivazione del servizio systemd-timesyncd sulle macchine Ubuntu. Di solito si sceglie di disabilitare questo servizio quando si vuole evitare la sincronizzazione del sistema con un time server via ntp.
Tabella dei Contenuti
Cos'è systemd-timesyncd
Il servizio systemd-timesyncd è presente sui sistemi Linux per sincronizzare via rete l’orologio di sistema. Sostanzialmente implemente un SNTP client. A differenza di implementazioni NTP più complesse come chrony, systemd-timesyncd non si preoccupa dell’intera complessità NTP, ma si concentra solo sull’interrogazione dell’ora da un server remoto e sulla sincronizzazione dell’orologio locale con esso. Questo demone viene eseguito con privilegi minimi ed è collegato a networkd per funzionare solo quando è disponibile la connettività di rete. Il demone salva l’orologio corrente su disco ogni volta che viene acquisita una nuova sincronizzazione NTP e la utilizza per eventualmente correggere l’orologio di sistema in anticipo all’avvio, in modo da adattarsi ai sistemi privi di RTC come Raspberry Pi o altri dispositivi embedded.
Disattivare systemd-timesyncd
Come prima cosa possiamo verificare con questo comando se il servizio è attivo:
sudo systemctl status systemd-timesyncd
Se il servizio è attivo otteniamo un output simile al seguente:
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-08-22 09:08:17 CEST; 1h 25min ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 2102 (systemd-timesyn)
Status: "Initial synchronization to time server 185.125.190.58:123 (ntp.ubuntu.com)."
Tasks: 2 (limit: 38078)
Memory: 1.5M
CGroup: /system.slice/systemd-timesyncd.service
└─2102 /lib/systemd/systemd-timesyncd
A questo punto disabilitiamo il servizio systemd-timesyncd lanciando i seguenti comandi:
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
Se inoltre vogliamo la certezza che al reboot della macchina il servizio non venga riavviato, usiamo il seguente comando per mascherarlo:
sudo systemctl mask systemd-timesyncd
Dopo aver apportato cambiamenti alla configurazione di systemd è sicuramente best practice eseguire il seguente comando :
sudo systemctl daemon-reload
Questo ricarica la configurazione di systemd e assicura che ogni cambiamento apportato sia immediatamente disponibile senza dover eseguire il reboot della macchina
Riattivare systemd-timesyncd
Per ripristinare il funzionamento di systemd-timesyncd lanciamo i comandi inversi a quelli che abbiamo utilizzato per disabilitarlo:
sudo systemctl unmask systemd-timesyncd
sudo systemctl enable systemd-timesyncd
sudo systemctl start systemd-timesyncd
sudo systemctl daemon-reload