diff options
author | tarneo <tarneo@tarneo.fr> | 2024-02-21 21:15:10 +0100 |
---|---|---|
committer | tarneo <tarneo@tarneo.fr> | 2024-02-21 21:15:10 +0100 |
commit | 566c07c78955c2940fac7cc71051b6114c6e8676 (patch) | |
tree | 05d050d58bf20cfa8854c37a6854eb7980c6ce8a | |
parent | b92f05335006eec526dd15a476150c6212d6ff47 (diff) | |
download | qutebrowser-566c07c78955c2940fac7cc71051b6114c6e8676.tar.gz qutebrowser-566c07c78955c2940fac7cc71051b6114c6e8676.zip |
Allow reloading config on SIGHUP
Before this commit qutebrowser would just exit when receiving a SIGHUP.
Now it will reload the config using the bare config_source function, just like
the :config-source command does.
Closes #8108.
-rw-r--r-- | qutebrowser/misc/crashsignal.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/qutebrowser/misc/crashsignal.py b/qutebrowser/misc/crashsignal.py index c69dcbe29..79dbe6bcc 100644 --- a/qutebrowser/misc/crashsignal.py +++ b/qutebrowser/misc/crashsignal.py @@ -335,6 +335,8 @@ class SignalHandler(QObject): signal.SIGINT, self.interrupt) self._orig_handlers[signal.SIGTERM] = signal.signal( signal.SIGTERM, self.interrupt) + self._orig_handlers[signal.SIGHUP] = signal.signal( + signal.SIGHUP, self.reload_config) if utils.is_posix and hasattr(signal, 'set_wakeup_fd'): # pylint: disable=import-error,no-member,useless-suppression @@ -430,6 +432,15 @@ class SignalHandler(QObject): print("WHY ARE YOU DOING THIS TO ME? :(") sys.exit(128 + signum) + def reload_config(self, _signum, _frame): + """Reload the config.""" + log.signals.info("SIGHUP received, reloading config.") + config_commands = objreg.get('config-commands', from_command=True) + try: + config_commands.config_source() + except cmdutils.CommandError as e: + log.signals.error("Error while reloading config:", exc_info=e) + def init(q_app: QApplication, args: argparse.Namespace, |