Annak érdekében, hogy elhárítsam egy adott időzónával kapcsolatos hibát egy szoftverprojekten, amin dolgozom, megpróbálom megismételni a rendszer változását. s az óra a timedatectl segítségével ellenőrzi a szoftveres viselkedésemet.

Ezt a futtatással próbálom elérni

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 

Amikor ezt megteszem, és rögtön azután lefuttatom a timedatectl -t, megkapom a várható következő időt:

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 

Azonban 10 másodperccel ezután, amikor a perc megváltozik (xx:59 -re), a helyi és univerzális időfajta “újraindul” az aktuális időre

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 

Mi hiányzik itt?

A beállításom egy Vagrant Ubuntu 18 VM (Linux vagrant 4.15.0-51 / vm box “bento / ubuntu-18.04”).

Megjegyzések

  • Előfordulhat, hogy a virtuális gép ideje szinkronizálva van a ' gazdagép idejével. Nem ismeri a Vagrantot, így ' nem tud megoldást mutatni Önnek.

Válasz

Ez nem magyarázza meg a látott viselkedést, de meg kell válaszolnia a címben szereplő kérdést.

A rendszer idejének megváltoztatása helyett használhat olyan eszközt, mint például a faketime és a TZ környezeti változó:

$ 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 

Ez lehetővé teszi a program futtatását a saját időzónájával, dátumával és idejével, anélkül, hogy befolyásolná a rendszer többi részét.

Vegye figyelembe, hogy mivel $LD_PRELOAD hack használatával kódot futtat az alkalmazásokba, statikusan összekapcsolt futtatható fájlok vagy setuid / setgid futtatható fájlok esetén nem fog működni.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük