nixos/tor: fix tor getting killed by systemd when shuttding down

Tor waits ShutdownWaitLength seconds (30s by default) before actually shutting down. Since the systemd timeout is also set to 30 seconds, this results in a race condition that ends up killing Tor most of the time on my machine during shutdown.
To fix this, add the ShutdownWaitLength setting and tell systemd to wait 30 seconds more than that.
Arch Linux also has `TimeoutSec` set to 60 seconds: 6df716fe19/trunk/tor.service.
This commit is contained in:
Luflosi 2022-01-25 01:52:42 +01:00
parent b05d2077eb
commit c6bd1eea71
No known key found for this signature in database
GPG Key ID: 4E41E29EDCC345D0

View File

@ -794,6 +794,11 @@ in
};
}));
};
options.ShutdownWaitLength = mkOption {
type = types.int;
default = 30;
description = descriptionGeneric "ShutdownWaitLength";
};
options.SocksPolicy = optionStrings "SocksPolicy" // {
example = ["accept *:*"];
};
@ -977,7 +982,7 @@ in
ExecStart = "${cfg.package}/bin/tor -f ${torrc}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
KillSignal = "SIGINT";
TimeoutSec = 30;
TimeoutSec = cfg.settings.ShutdownWaitLength + 30; # Wait a bit longer than ShutdownWaitLength before actually timing out
Restart = "on-failure";
LimitNOFILE = 32768;
RuntimeDirectory = [