* Nix daemon: reload the configuration file after forking (NIX-100).
This commit is contained in:
@@ -118,5 +118,12 @@ unsigned int queryIntSetting(const string & name, unsigned int def)
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
void reloadSettings()
|
||||
{
|
||||
settingsRead = false;
|
||||
settings.clear();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -107,6 +107,8 @@ bool queryBoolSetting(const string & name, bool def);
|
||||
|
||||
unsigned int queryIntSetting(const string & name, unsigned int def);
|
||||
|
||||
void reloadSettings();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -627,13 +627,17 @@ static void daemonLoop()
|
||||
|
||||
case 0:
|
||||
try { /* child */
|
||||
|
||||
|
||||
/* Background the worker. */
|
||||
if (setsid() == -1)
|
||||
throw SysError(format("creating a new session"));
|
||||
|
||||
/* Restore normal handling of SIGCHLD. */
|
||||
setSigChldAction(false);
|
||||
|
||||
/* Since the daemon can be long-running, the
|
||||
settings may have changed. So force a reload. */
|
||||
reloadSettings();
|
||||
|
||||
/* Handle the connection. */
|
||||
from.fd = remote;
|
||||
|
||||
Reference in New Issue
Block a user