Also handle SIGHUP to reload the configuration

Because that’s what is typically done on other deamons, and we don’t want to
suprise users.
This commit is contained in:
louiz’
2018-05-06 12:13:09 +02:00
parent edcd80cca1
commit ed36c26598
3 changed files with 8 additions and 4 deletions
+2
View File
@@ -1,6 +1,8 @@
Version 9.0 Version 9.0
=========== ===========
- SIGHUP is now caught and reloads the configuration like SIGUSR1 and 2.
Version 8.0 - 2018-05-02 Version 8.0 - 2018-05-02
======================== ========================
+4 -4
View File
@@ -42,10 +42,10 @@ variables, with the name all in upper case and prefixed with "BIBOUMI_".
For example, if the environment contains “BIBOUMI_PASSWORD=blah", this will For example, if the environment contains “BIBOUMI_PASSWORD=blah", this will
override the value of the “password” option in the configuration file. override the value of the “password” option in the configuration file.
Sending SIGUSR1 or SIGUSR2 (see kill(1)) to the process will force it to Sending SIGUSR1, SIGUSR2 or SIGHUP (see kill(1)) to the process will force
re-read the configuration and make it close and re-open the log files. You it to re-read the configuration and make it close and re-open the log
can use this to change any configuration option at runtime, or do a log files. You can use this to change any configuration option at runtime, or
rotation. do a log rotation.
Here is a description of every possible option: Here is a description of every possible option:
+2
View File
@@ -103,6 +103,7 @@ int main(int ac, char** av)
sigaddset(&mask, SIGTERM); sigaddset(&mask, SIGTERM);
sigaddset(&mask, SIGUSR1); sigaddset(&mask, SIGUSR1);
sigaddset(&mask, SIGUSR2); sigaddset(&mask, SIGUSR2);
sigaddset(&mask, SIGHUP);
sigprocmask(SIG_BLOCK, &mask, nullptr); sigprocmask(SIG_BLOCK, &mask, nullptr);
// Install the signals used to exit the process cleanly, or reload the // Install the signals used to exit the process cleanly, or reload the
@@ -124,6 +125,7 @@ int main(int ac, char** av)
on_sigusr.sa_flags = 0; on_sigusr.sa_flags = 0;
sigaction(SIGUSR1, &on_sigusr, nullptr); sigaction(SIGUSR1, &on_sigusr, nullptr);
sigaction(SIGUSR2, &on_sigusr, nullptr); sigaction(SIGUSR2, &on_sigusr, nullptr);
sigaction(SIGHUP, &on_sigusr, nullptr);
auto p = std::make_shared<Poller>(); auto p = std::make_shared<Poller>();