Register SIGTERM handler

This commit is contained in:
Stein Magnus Jodal 2011-06-10 00:34:06 +02:00
parent 3cdf1aa35d
commit f8965e053b
2 changed files with 12 additions and 1 deletions

View File

@ -1,5 +1,6 @@
import logging
import optparse
import signal
import sys
import time
@ -22,12 +23,14 @@ from mopidy.gstreamer import GStreamer
from mopidy.utils import get_class
from mopidy.utils.log import setup_logging
from mopidy.utils.path import get_or_create_folder, get_or_create_file
from mopidy.utils.process import GObjectEventThread, stop_all_actors
from mopidy.utils.process import (GObjectEventThread, exit_handler,
stop_all_actors)
from mopidy.utils.settings import list_settings_optparse_callback
logger = logging.getLogger('mopidy.core')
def main():
signal.signal(signal.SIGTERM, exit_handler)
try:
options = parse_options()
setup_logging(options.verbosity_level, options.save_debug_log)

View File

@ -1,4 +1,5 @@
import logging
import signal
import threading
import gobject
@ -11,6 +12,13 @@ from mopidy import SettingsError
logger = logging.getLogger('mopidy.utils.process')
def exit_handler(signum, frame):
"""A :mod:`signal` handler which will exit the program on signal."""
signals = dict((k, v) for v, k in signal.__dict__.iteritems()
if v.startswith('SIG') and not v.startswith('SIG_'))
logger.info(u'Got %s. Exiting...', signals[signum])
stop_all_actors()
def stop_all_actors():
num_actors = len(ActorRegistry.get_all())
while num_actors: