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 60c62214f5.
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user