summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core.py13
-rw-r--r--src/poezio.py4
2 files changed, 13 insertions, 4 deletions
diff --git a/src/core.py b/src/core.py
index 4d1bf45a..05814f19 100644
--- a/src/core.py
+++ b/src/core.py
@@ -268,12 +268,12 @@ class Core(object):
self.pending_invites = {}
- def sighup_handler(self, num, stack):
+ def sigusr_handler(self, num, stack):
"""
- Handle SIGHUP (1)
+ Handle SIGUSR1 (10)
When caught, reload all the possible files.
"""
- log.debug("SIGHUP caught, reloading the files…")
+ log.debug("SIGUSR1 caught, reloading the files…")
# reload all log files
log.debug("Reloading the log files…")
logger.reload_all()
@@ -287,6 +287,13 @@ class Core(object):
config.__init__(config.file_name)
log.debug("Config reloaded.")
+ def exit_from_signal(self, *args, **kwargs):
+ """
+ Quit when receiving SIGHUP or SIGTERM
+ """
+ log.debug("Either SIGHUP or SIGTERM received. Exiting…")
+ self.command_quit()
+
def autoload_plugins(self):
"""
Load the plugins on startup.
diff --git a/src/poezio.py b/src/poezio.py
index 258a25e4..161446da 100644
--- a/src/poezio.py
+++ b/src/poezio.py
@@ -31,7 +31,9 @@ def main():
else:
logging.basicConfig(level=logging.CRITICAL)
cocore = singleton.Singleton(core.Core)
- signal.signal(signal.SIGHUP, cocore.sighup_handler) # ignore ctrl-c
+ signal.signal(signal.SIGUSR1, cocore.sigusr_handler) # reload the config
+ signal.signal(signal.SIGHUP, cocore.exit_from_signal)
+ signal.signal(signal.SIGTERM, cocore.exit_from_signal)
if options.debug:
cocore.debug = True
cocore.start()