매월 반복되는 작업의 실행을 테스트하기 위해 Ubuntu 18.04(systemd 237)에서 가짜 시간을 설정하려고 합니다.
가상 머신(게스트 추가 기능이 있는 Virtualbox)에서 실행됩니다.
ntp 동기화가 비활성화된 경우에도 시간은 몇 초 후에 올바른 시간으로 다시 재설정됩니다.
예.
# Disable the sync
timedatectl set-ntp 0
# There aren't any ntp daemons running
systemctl -a | grep ntp # Returns nothing
# This confirms there is no sync active
timedatectl status
# Local time: Mo 2019-03-11 15:22:13 CET
# Universal time: Mo 2019-03-11 14:22:13 UTC
# RTC time: Mo 2019-03-11 14:22:13
# Time zone: Europe/Berlin (CET, +0100)
# System clock synchronized: no
# systemd-timesyncd.service active: no
# RTC in local TZ: no
# Setting up the fake time
timedatectl set-time '2015-11-20 16:14:50'
# It worked! Wuhuu!
timedatectl status
# Local time: Fr 2015-11-20 16:14:51 CET
# Universal time: Fr 2015-11-20 15:14:51 UTC
# RTC time: Fr 2015-11-20 15:14:51
# Time zone: Europe/Berlin (CET, +0100)
# System clock synchronized: no
# systemd-timesyncd.service active: no
# RTC in local TZ: no
# 5 sec later
timedatectl status
# Local time: Mo 2019-03-11 15:25:35 CET
# Universal time: Mo 2019-03-11 14:25:35 UTC
# RTC time: Fr 2015-11-20 15:14:51
# Time zone: Europe/Berlin (CET, +0100)
# System clock synchronized: no
# systemd-timesyncd.service active: no
# RTC in local TZ: no
동기화 서비스가 없다면 어떻게 동기화를 유지하나요?
답변1
동기화 서비스가 없으면 […]
하지만 있습니다. 게스트 운영 체제에서 실행되는 VirtualBox 서비스에 내장되어 있습니다.
불행하게도 게스트 운영 체제의 서비스는 VBoxService
한 번에 많은 작업을 수행하며 서비스를 중지하면 수행했던 모든 작업이 완전히 취소됩니다. 기본 서비스 관리 도구를 통한 제어가 없기 때문에 사용 가능한 유일한 세부 제어는 Oracle의 도구입니다.
VBoxManage가 추가 데이터를 설정합니다."가상 머신 이름""VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
동기화 서비스 스레드 자체는 비활성화되지 않습니다. 이로 인해 이 스레드에 의해 호출된 감독자 호출이 실패를 반환하게 됩니다. 동기화 서비스 스레드가 계속 실행됩니다. 호스트 시간을 반복적으로 가져오는 데 실패합니다.
추가 읽기
- 마이클 성경(2016-01-24).
systemd-timesyncd
VirtualBox 게스트에서 비활성화됨. 데비안 버그 #812522. - "타이머 미세 조정 및 시간 동기화".Oracle VM VirtualBox 사용자 매뉴얼. 신탁. 2019.
답변2
이는 가상 머신을 호스트 시스템과 동기화하는 서비스로 인해 발생한 것으로 보입니다. 제 경우에는(Virtualbox) 서비스를 비활성화하면 문제가 해결되었습니다.
systemctl stop vboxadd-service.service
더 복잡한 솔루션은 다른 답변/설명에 지정되어 있지만 호스트 측에서 단계가 필요합니다. 제 경우에는 이 모의과 관련된 모든 테스트를 게스트에서 실행해야 한다는 점을 고려하면 기록하는 것이 더 간단했습니다.