내 Manjaro Linux 시스템에는 다음을 포함하는 파일이 있습니다 /etc/timezone
.
Asia/Bangkok
다른 Manjaro 포럼 사용자도 동일한 파일을 가지고 있습니다.. 이 스레드에는 일반적으로 이 문제에 대한 일부 기존 기술이 포함되어 있습니다.
이상하게도 timedatectl status
이 파일은 보고용으로는 사용되지 않습니다 Region/City
. 초기 상태는 다음과 같습니다.
$ timedatectl status
Local time: Fri 2018-06-29 11:01:28 +07
Universal time: Fri 2018-06-29 04:01:28 UTC
RTC time: Fri 2018-06-29 04:01:28
Time zone: Asia/Bangkok (+07, +0700)
System clock synchronized: no
systemd-timesyncd.service active: no
RTC in local TZ: no
이제 /etc/localtime
심볼릭 링크를 가리키는 파일의 내용으로 덮어씁니다.
$ sudo ln -f "$(realpath /etc/localtime)" /etc/localtime
$ timedatectl status
Local time: Fri 2018-06-29 04:04:03 UTC
Universal time: Fri 2018-06-29 04:04:03 UTC
RTC time: Fri 2018-06-29 04:04:04
Time zone: n/a (UTC, +0000)
System clock synchronized: no
systemd-timesyncd.service active: no
RTC in local TZ: no
현지 시간은 UTC 및 n/a
시간대와 일치하도록 변경됩니다.
그러니 읽지 timedatectl
말고/etc/timezone
timedatectl set-timezone
쓰지 마세요/etc/timezone
반품.
이 추측 외에도 내 것은 /etc/timezone
미스터리입니다.
- 무엇이 쓰여 있나요?
- 무엇을 읽어야 할까요?
- 무엇 때문에?
답변1
GNU libc(및 내장되지 않은 모든 Linux)는 /etc/localtime
시스템의 시간대( TZ
환경 변수나 애플리케이션별 설정으로 재정의되지 않은 경우 기본 시간대)를 결정하기 위해 읽습니다. *BSD도 같은 일을 합니다. 일부 임베디드 Linux 시스템은 작업을 다르게 수행합니다.
/etc/localtime
아래 파일에 대한 심볼릭 링크여야 합니다 /usr/share/zoneinfo/
. 일반 응용 프로그램은 신경 쓰지 않고 파일 내용만 읽습니다. 그러나 시스템 관리 유틸리티(예를 들어)는 timedatectl
설정을 변경할 수도 있고 심볼릭 링크의 대상을 변경하여 이를 수행하기 때문에 더 중요합니다.
Java는 다르게 (또는 그랬습니까?)/etc/timezone
: 파일을 기준으로 하는 시간대 이름이 포함된 파일의 경로를 읽습니다 /usr/share/zoneinfo
. 나는 그것을 사용하는 다른 어떤 프로그램도 알지 못하며 /etc/timezone
왜 Sun이 세계의 다른 곳과 다르게 일을 선택하는지 모르겠습니다.