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時間ほどオンラインに接続した後も同様です。

答え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

関連情報