Za účelem vyřešení konkrétní chyby související s časovým pásmem u softwarového projektu, na kterém pracuji, se pokouším replikovat změnu v systému. “ hodiny pomocí timedatectl ke kontrole chování mého softwaru.

Snažím se toho dosáhnout spuštěním

timedatectl set-timezone America/New_York timedatectl set-local-rtc 1 timedatectl set-ntp false timedatectl set-time "2017-03-12 01:58:50" && hwclock -w 

Když to udělám a hned poté spustím timedatectl, dostanu očekávaný následující čas:

Local time: Sun 2017-03-12 01:58:51 EST Universal time: Sun 2017-03-12 06:58:51 UTC RTC time: Sun 2017-03-12 01:58:51 Time zone: America/New_York (EST, -0500) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: yes 

Avšak 10 sekund po tomto, když se minuta změní (na xx:59), se místní a světový čas „restartuje“ na aktuální čas

Local time: Wed 2019-08-07 21:01:41 EDT Universal time: Thu 2019-08-08 01:01:41 UTC RTC time: Sun 2017-03-12 01:58:57 Time zone: America/New_York (EDT, -0400) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: yes 

Co mi zde chybí?

Moje nastavení je Vagrant Ubuntu 18 VM (linuxový tulák 4.15.0-51 / vm box „bento / ubuntu-18.04“).

Komentáře

  • Možná zjistíte, že čas vašeho virtuálního počítače je synchronizován s časem vašeho hostitele '. Nejste obeznámeni s Vagrantem, takže vás ' nemůže nasměrovat k řešení.

Odpovědět

To nevysvětlí chování, které vidíte, ale mělo by to odpovědět na otázku v nadpisu.

Místo změny času systému můžete použít nástroj jako faketime a proměnná prostředí TZ:

$ date; faketime -f -15d date; TZ=America/New_York faketime -f -15d date Thu 8 Aug 10:21:13 CEST 2019 Wed 24 Jul 10:21:13 CEST 2019 Wed 24 Jul 04:21:13 EDT 2019 

To vám umožní spustit program s vlastním časovým pásmem, datem a časem, aniž by to ovlivnilo zbytek systému.

Všimněte si, že používá $LD_PRELOAD hack k vkládání kódu do aplikací, nebude fungovat pro staticky spojené spustitelné soubory nebo spustitelné soubory setuid / setgid.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *