환경services.localtime.enable = true;
~해야 한다그러나 "현재 위치를 기준으로 시스템 시간대를 최신 상태로 유지하는 데 사용되는 간단한 데몬"을 시작합니다.하지만 사실은 그렇지 않아요:
/etc/localtime에 대한 대상을 가져올 수 없습니다. 해당 파일이나 디렉터리가 없습니다.
touch /etc/localtime
단기적으로 수정하는 것이 가능할 수도 있지만 합리적인 해결 방법은 아니라고 생각합니다. 결국 NixOS의 /etc는 이런 방식으로 해킹될 수 없어야 합니다. 이 작업을 수행하려면 몇 가지 추가 설정이 필요하다고 생각하지만 문서에는 아무 것도 언급되어 있지 않습니다. 불행하게도 위에 링크된 버그 보고서는 아무런 관심을 받지 못했기 때문에 이 커뮤니티의 누군가가 어떻게 해야 할지 알고 있기를 바랍니다.
설정 time.timeZone = "UTC";
은 동일합니다결과적으로 서비스가 시작됩니다. 그러나 이 서비스(및 geoclue 서비스)는 유용한 출력을 생성하지 않습니다.
$ journalctl --boot --output=cat --unit geoclue.service
Starting Location Lookup Service...
Started Location Lookup Service.
$ journalctl --boot --output=cat --unit systemd-timedated.service
Starting Time & Date Service...
Started Time & Date Service.
Failed to set timezone: Europe/Zurich
그리고/etc/localtime 심볼릭 링크는 항상 /etc/zoneinfo/UTC를 가리킵니다.한 시간 정도 온라인에 접속한 후에도 마찬가지입니다.
답변1
services.localtimed.enable = true;
NixOS 23.05의 설정하다예상대로 작동하는 것 같습니다.
❯ journalctl --boot --output=cat --unit=localtimed
Starting localtimed.service...
Started localtimed.service.
2023/10/09 08:59:12 Updated timezone to: Pacific/Auckland