~singpolyma/biboumi

ed36c26598892c60c6d2c9a096f536cc1f4705cc — louiz’ 5 years ago edcd80c
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.
3 files changed, 8 insertions(+), 4 deletions(-)

M CHANGELOG.rst
M doc/biboumi.1.rst
M src/main.cpp
M CHANGELOG.rst => CHANGELOG.rst +2 -0
@@ 1,6 1,8 @@
Version 9.0
===========

- SIGHUP is now caught and reloads the configuration like SIGUSR1 and 2.

Version 8.0 - 2018-05-02
========================


M doc/biboumi.1.rst => doc/biboumi.1.rst +4 -4
@@ 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
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
re-read the configuration and make it close and re-open the log files. You
can use this to change any configuration option at runtime, or do a log
rotation.
Sending SIGUSR1, SIGUSR2 or SIGHUP (see kill(1)) to the process will force
it to re-read the configuration and make it close and re-open the log
files. You can use this to change any configuration option at runtime, or
do a log rotation.

Here is a description of every possible option:


M src/main.cpp => src/main.cpp +2 -0
@@ 103,6 103,7 @@ int main(int ac, char** av)
  sigaddset(&mask, SIGTERM);
  sigaddset(&mask, SIGUSR1);
  sigaddset(&mask, SIGUSR2);
  sigaddset(&mask, SIGHUP);
  sigprocmask(SIG_BLOCK, &mask, nullptr);

  // 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;
  sigaction(SIGUSR1, &on_sigusr, nullptr);
  sigaction(SIGUSR2, &on_sigusr, nullptr);
  sigaction(SIGHUP, &on_sigusr, nullptr);

  auto p = std::make_shared<Poller>();