Unverified Commit 4b224eef authored by Arnout Engelen's avatar Arnout Engelen
Browse files

nixos/autossh-ng: more accurate systemd unit readiness

This is convenient e.g. if you have another process that wants
to use the connection; that can wait for the unit to become ready
instead of 'blindly' (re)trying the connection.
parent b0d3faa4
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -105,6 +105,8 @@ in
          wantedBy = [ "multi-user.target" ];

          serviceConfig = {
            Type = "notify";
            NotifyAccess = "all";
            User = "${s.user}";
            # backoff would be nice, but doesn't automatically
            # get reset on successful start yet, so static 10s restart for now:
@@ -117,11 +119,16 @@ in
                    "-o \"UserKnownHostsFile=${s.knownHostsFile}\""
                  else
                    "-o \"UserKnownHostsFile=/dev/null\" -o \"StrictHostKeyChecking=no\"";
                ready = pkgs.writers.writeBash "systemd-signal-ready" ''
                  ${pkgs.systemd}/bin/systemd-notify --ready
                '';
              in
              ''
                ${pkgs.openssh}/bin/ssh \
                  -o "ServerAliveInterval 30" \
                  -o "ServerAliveCountMax 3" \
                  -o "PermitLocalCommand=yes" \
                  -o "LocalCommand ${ready}" \
                  -o ExitOnForwardFailure=yes \
                  ${hostKeyCheckOption} \
                  -N \