* Nix daemon: reload the configuration file after forking (NIX-100).
This commit is contained in:
parent
c202523e53
commit
a55113411f
3 changed files with 14 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue