如何修复 NixOS 本地时间服务?

如何修复 NixOS 本地时间服务?

环境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

相关内容