openntpd: make -s flag work

after seeing
`adjtime failed: Invalid argument` in my syslog, I tried using
`ntpd -s` but it would trigger
`/etc/ntpd.conf: No such file or directory`
see https://github.com/NixOS/nixpkgs/issues/31885

Instead of running the daemon with a specific config file, use the
standard file so that user are able to use the ntp executable without
having to look for the current config file.
This commit is contained in:
Matthieu Coudron 2018-03-04 08:30:00 +09:00
parent 1d9330d63a
commit f5e169c608

View File

@ -7,7 +7,7 @@ let
package = pkgs.openntpd_nixos;
cfgFile = pkgs.writeText "openntpd.conf" ''
configFile = ''
${concatStringsSep "\n" (map (s: "server ${s}") cfg.servers)}
${cfg.extraConfig}
'';
@ -31,8 +31,8 @@ in
type = with types; lines;
default = "";
example = ''
listen on 127.0.0.1
listen on ::1
listen on 127.0.0.1
listen on ::1
'';
description = ''
Additional text appended to <filename>openntpd.conf</filename>.
@ -57,6 +57,8 @@ in
# Add ntpctl to the environment for status checking
environment.systemPackages = [ package ];
environment.etc."ntpd.conf".text = configFile;
users.extraUsers = singleton {
name = "ntp";
uid = config.ids.uids.ntp;
@ -71,7 +73,7 @@ in
before = [ "time-sync.target" ];
after = [ "dnsmasq.service" "bind.service" "network-online.target" ];
serviceConfig = {
ExecStart = "${package}/sbin/ntpd -f ${cfgFile} -p ${pidFile} ${cfg.extraOptions}";
ExecStart = "${package}/sbin/ntpd -p ${pidFile} ${cfg.extraOptions}";
Type = "forking";
PIDFile = pidFile;
};