summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Core.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-02-25 13:41:48 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-02-25 13:44:21 -0500
commit4568c44372c99ba809826e016680da9b881bd8e8 (patch)
treee161defae015b0d4039c542942b58ffd3acccd18 /src/lib/Bcfg2/Server/Core.py
parentc4528303121d1c33244d147e97c29669ac30c01b (diff)
downloadbcfg2-4568c44372c99ba809826e016680da9b881bd8e8.tar.gz
bcfg2-4568c44372c99ba809826e016680da9b881bd8e8.tar.bz2
bcfg2-4568c44372c99ba809826e016680da9b881bd8e8.zip
Core: properly handle Ctrl-C
Diffstat (limited to 'src/lib/Bcfg2/Server/Core.py')
-rw-r--r--src/lib/Bcfg2/Server/Core.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index 782aafbf1..6f642e347 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -2,13 +2,14 @@
implementations inherit from. """
import os
-import atexit
-import logging
-import select
import sys
-import threading
import time
+import atexit
+import select
+import signal
+import logging
import inspect
+import threading
import lxml.etree
import Bcfg2.settings
import Bcfg2.Server
@@ -285,6 +286,14 @@ class BaseCore(object):
#: The CA that signed the server cert
self.ca = setup['ca']
+ def hdlr(sig, frame): # pylint: disable=W0613
+ """ Handle SIGINT/Ctrl-C by shutting down the core and exiting
+ properly. """
+ self.shutdown()
+ os._exit(1) # pylint: disable=W0212
+
+ signal.signal(signal.SIGINT, hdlr)
+
#: The FAM :class:`threading.Thread`,
#: :func:`_file_monitor_thread`
self.fam_thread = \