편집하여 시간대를 재설정하고 싶습니다 /etc/timezone
. 그런데 편집을 마치고 파일을 저장했는데도 그에 맞춰 시스템 시간이 바뀌지 않더군요.
반면에 dpkg-reconfigure tzdata
시간대를 변경하는 명령을 사용하면 시간이 즉시 변경됩니다. 또한 /etc/timezone
그에 따라 파일이 수정됩니다.
구성 파일을 편집하고 저장한 후 새 시간을 적용하려면 어떤 단계를 생략해야 합니까?
답변1
이제 작동한다는 것을 알았으니 dpkg-reconfigure tzdata
사용해 보는 것은 어떨까요?
문제가 대화형이고 변경 사항을 스크립팅하려는 경우 이것이 가능합니다. 시간대는 다음을 통해 구성됩니다.데브 컨퍼런스. 다음 명령을 사용하여 값을 설정할 수 있습니다debconf-set-selections
. 그런 다음 패키지를 재구성하고 아무것도 묻지 않도록 지시합니다.
debconf-set-selections <<EOF
tzdata tzdata/Areas select Europe
tzdata tzdata/Areas seen true
tzdata tzdata/Zones/Europe select Paris
tzdata tzdata/Zones/Europe seen true
EOF
dpkg-reconfigure -fnoninteractive tzdata
/etc/localtime
애플리케이션은 처음 필요할 때 시간대 정보를 읽습니다. 이는 시스템의 표준 라이브러리에 의해 수행되므로 예외가 많이 발견되지는 않습니다. /etc/localtime
일반적으로 아래 파일에 대한 심볼릭 링크 /usr/share/zoneinfo
또는 해당 파일의 복사본입니다. 대부분의 응용 프로그램은 이 파일의 변경 사항을 적용하려면 다시 시작해야 합니다.
이 파일에는 /etc/timezone
시간대 이름이 포함되어 있습니다. 일반적으로 /etc/localtime
링크나 사본입니다 /usr/share/zoneinfo/$(cat /etc/timezone)
. /etc/timezone
주로(만?) 패키징 시스템에서 사용되므로 변경해도 눈에 띄는 효과가 없는 이유가 설명됩니다.
TZ
환경 변수(예:)를 사용하여 특정 애플리케이션을 시작하면 특정 애플리케이션에서 다른 시간대를 사용할 수 있습니다 TZ=Pacific/Tarawa date
.
답변2
보니까 이게 호출되었을 때 실행되는 것 /var/lib/dpkg/info/tzdata.postinst
같아요 .dpkg-reconfigure tzdata
/etc/timezone
업데이트 이후 실행되는 다음 명령에 특히 주의하시기 바랍니다 .
cp -f /usr/share/zoneinfo/$AREA/$ZONE /etc/localtime.dpkg-new && \
mv -f /etc/localtime.dpkg-new /etc/localtime
따라서 /etc/localtime 파일을 업데이트해야 합니다. 아직 해보지는 않았지만, 시간대를 바꾸는 중요한 단계인 것 같아요. 직접 편집한 경우 tzdata
관리자가 수동으로 변경하기를 원하는지 확실하지 않습니다 /etc/timezone
.
답변3
service timezone restart
이를 적용하려면 수동으로 실행할 수도 있습니다 . 이는 거의 모든 시스템 프로필에서 작동합니다. 파일이 변경된 후에는 이러한 구성에 의존하는 모든 서비스를 다시 시작해야 합니다.
파일을 변경하는 것만 /etc/timezone
으로도 충분하지만 일반적으로 적용하려면 재부팅하거나 최소한 다시 로그인해야 합니다. 시간대 변경은 시스템 제조업체가 예상하는 일이 아니며 자주 다시 읽어야 하는 구성 파일이 되기에 충분합니다!
처음 로그인할 때 설정한 환경 변수로 인해 다시 로그인해야 하는 경우도 있습니다. 예를 들어 시스템 언어 변수는 일반적으로 로그인 시 설정되며 프로필을 변경해도 로그인한 사용자에게는 영향을 미치지 않습니다.
답변4
다음 스크립트를 사용하여 사용자에게 설정하려는 시간대를 묻고 실제로 설정되었는지 확인합니다.
#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl
나는 그것을 부른다 tz-set
.