Merge fort-nix/nix-bitcoin#761: services: use wants dependency where possible

4aaef5fdf4 services: use `wants` dependency where possible (Erik Arvstedt)

Pull request description:

ACKs for top commit:
  jonasnick:
    ACK 4aaef5fdf4

Tree-SHA512: 183c0dea60d59542654503401c4fac10699e5c0703214061e705c5a47915f18c56ad88ae9dcebc746a90b4dcb4b41dc31725436605cb4b395af1f9e21cae681e
This commit is contained in:
Jonas Nick 2025-01-31 11:20:52 +00:00
commit df7b000efc
No known key found for this signature in database
GPG key ID: 4861DBF262123605
7 changed files with 19 additions and 17 deletions

View file

@ -171,8 +171,9 @@ in {
''; '';
in rec { in rec {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "bitcoind.service" "postgresql.service" ] ++ optional cfg.btcpayserver.lbtc "liquidd.service"; requires = [ "postgresql.service" ];
after = requires ++ [ "nix-bitcoin-secrets.target" ]; wants = [ "bitcoind.service" ] ++ optional cfg.btcpayserver.lbtc "liquidd.service";
after = requires ++ wants ++ [ "nix-bitcoin-secrets.target" ];
preStart = '' preStart = ''
install -m 600 ${configFile} '${cfg.nbxplorer.dataDir}/settings.config' install -m 600 ${configFile} '${cfg.nbxplorer.dataDir}/settings.config'
{ {
@ -223,11 +224,12 @@ in {
lbtcexplorerurl=${nbExplorerUrl} lbtcexplorerurl=${nbExplorerUrl}
lbtcexplorercookiefile=${nbExplorerCookie} lbtcexplorercookiefile=${nbExplorerCookie}
''); '');
in let self = { in rec {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "nbxplorer.service" "postgresql.service" ] requires = [ "postgresql.service" ];
wants = [ "nbxplorer.service" ]
++ optional (cfg.btcpayserver.lightningBackend != null) "${cfg.btcpayserver.lightningBackend}.service"; ++ optional (cfg.btcpayserver.lightningBackend != null) "${cfg.btcpayserver.lightningBackend}.service";
after = self.requires; after = requires ++ wants;
serviceConfig = nbLib.defaultHardening // { serviceConfig = nbLib.defaultHardening // {
ExecStart = '' ExecStart = ''
${cfg.btcpayserver.package}/bin/btcpayserver --conf=${configFile} \ ${cfg.btcpayserver.package}/bin/btcpayserver --conf=${configFile} \
@ -244,7 +246,7 @@ in {
} // nbLib.allowedIPAddresses cfg.btcpayserver.tor.enforce; } // nbLib.allowedIPAddresses cfg.btcpayserver.tor.enforce;
startLimitIntervalSec = 30; startLimitIntervalSec = 30;
startLimitBurst = 10; startLimitBurst = 10;
}; in self; };
users.users.${cfg.nbxplorer.user} = { users.users.${cfg.nbxplorer.user} = {
isSystemUser = true; isSystemUser = true;

View file

@ -75,7 +75,7 @@ in {
systemd.services.clightning-rest = mkIf cfg.enable { systemd.services.clightning-rest = mkIf cfg.enable {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "clightning.service" ]; wants = [ "clightning.service" ];
after = [ "clightning.service" ]; after = [ "clightning.service" ];
path = [ pkgs.openssl ]; path = [ pkgs.openssl ];
environment.CL_REST_STATE_DIR = cfg.dataDir; environment.CL_REST_STATE_DIR = cfg.dataDir;

View file

@ -111,7 +111,7 @@ in {
systemd.services.fulcrum = { systemd.services.fulcrum = {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "bitcoind.service" ]; wants = [ "bitcoind.service" ];
after = [ "bitcoind.service" "nix-bitcoin-secrets.target" ]; after = [ "bitcoind.service" "nix-bitcoin-secrets.target" ];
preStart = '' preStart = ''
{ {

View file

@ -255,7 +255,7 @@ in {
]; ];
systemd.services.liquidd = { systemd.services.liquidd = {
requires = [ "bitcoind.service" ]; wants = [ "bitcoind.service" ];
after = [ "bitcoind.service" "nix-bitcoin-secrets.target" ]; after = [ "bitcoind.service" "nix-bitcoin-secrets.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = '' preStart = ''

View file

@ -275,10 +275,11 @@ in {
}; };
}; };
systemd.services.mempool = { systemd.services.mempool = rec {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "${cfg.electrumServer}.service" ]; requires = [ "mysql.service" ];
after = [ "${cfg.electrumServer}.service" "mysql.service" ]; wants = [ "${cfg.electrumServer}.service" ];
after = requires ++ wants;
preStart = '' preStart = ''
mkdir -p '${cacheDir}/cache' mkdir -p '${cacheDir}/cache'
<${configFile} sed \ <${configFile} sed \

View file

@ -190,9 +190,9 @@ in {
systemd.services.rtl = rec { systemd.services.rtl = rec {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = optional cfg.nodes.clightning.enable "clightning.service" ++ wants = optional cfg.nodes.clightning.enable "clightning.service" ++
optional cfg.nodes.lnd.enable "lnd.service"; optional cfg.nodes.lnd.enable "lnd.service";
after = requires ++ [ "nix-bitcoin-secrets.target" ]; after = wants ++ [ "nix-bitcoin-secrets.target" ];
environment.RTL_CONFIG_PATH = cfg.dataDir; environment.RTL_CONFIG_PATH = cfg.dataDir;
environment.DB_DIRECTORY_PATH = cfg.dataDir; environment.DB_DIRECTORY_PATH = cfg.dataDir;
serviceConfig = nbLib.defaultHardening // { serviceConfig = nbLib.defaultHardening // {

View file

@ -386,7 +386,6 @@ def _():
@test("restart-bitcoind") @test("restart-bitcoind")
def _(): def _():
# Sanity-check system by restarting bitcoind. # Sanity-check system by restarting bitcoind.
# This also restarts all services depending on bitcoind.
succeed("systemctl restart bitcoind") succeed("systemctl restart bitcoind")
@test("regtest") @test("regtest")