diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2021-11-30 23:30:54 +0100 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2021-11-30 23:33:34 +0100 |
commit | 1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4 (patch) | |
tree | d373895b8ab8177aa20b1a3eaa082771d01e4a01 | |
parent | ab5a3f8226b52b4ee32ea9dcb33d007b39a1e566 (diff) | |
download | nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.tar nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.tar.gz nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.tar.bz2 nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.tar.lz nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.tar.xz nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.tar.zst nixpkgs-1f726635ee4f0a5faebc4c9b9787bc0d76d0ace4.zip |
nixos/charybdis: implement reload functionality
IRC daemons are highly stateful daemons, so allow config changes without kicking all server and client connections. Basically a port of 60c62214f5a3c7db6aa30d8a8e02c863b6abcf0a.
-rw-r--r-- | nixos/modules/services/networking/charybdis.nix | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix index 43829d36e41..ff09c0160cb 100644 --- a/nixos/modules/services/networking/charybdis.nix +++ b/nixos/modules/services/networking/charybdis.nix @@ -85,14 +85,21 @@ in "d ${cfg.statedir} - ${cfg.user} ${cfg.group} - -" ]; + environment.etc."charybdis/ircd.conf".source = configFile; + systemd.services.charybdis = { description = "Charybdis IRC daemon"; wantedBy = [ "multi-user.target" ]; + reloadIfChanged = true; + restartTriggers = [ + configFile + ]; environment = { BANDB_DBPATH = "${cfg.statedir}/ban.db"; }; serviceConfig = { - ExecStart = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile ${configFile}"; + ExecStart = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile /etc/charybdis/ircd.conf"; + ExecReload = "${coreutils}/bin/kill -HUP $MAINPID"; Group = cfg.group; User = cfg.user; }; |