parent
3a7e7cdde0
commit
e88b2a7beb
@ -5,6 +5,7 @@ import collections
|
|||||||
import contextlib
|
import contextlib
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import signal
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import pykka
|
import pykka
|
||||||
@ -13,7 +14,7 @@ from mopidy import config as config_lib, exceptions
|
|||||||
from mopidy.audio import Audio
|
from mopidy.audio import Audio
|
||||||
from mopidy.core import Core
|
from mopidy.core import Core
|
||||||
from mopidy.internal import deps, process, timer, versioning
|
from mopidy.internal import deps, process, timer, versioning
|
||||||
from mopidy.internal.gi import GLib, GObject
|
from mopidy.internal.gi import GLib
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -283,7 +284,13 @@ class RootCommand(Command):
|
|||||||
help='`section/key=value` values to override config options')
|
help='`section/key=value` values to override config options')
|
||||||
|
|
||||||
def run(self, args, config):
|
def run(self, args, config):
|
||||||
loop = GObject.MainLoop()
|
def on_sigterm(loop):
|
||||||
|
logger.info('GLib mainloop got SIGTERM. Exiting...')
|
||||||
|
loop.quit()
|
||||||
|
|
||||||
|
loop = GLib.MainLoop()
|
||||||
|
GLib.unix_signal_add(
|
||||||
|
GLib.PRIORITY_DEFAULT, signal.SIGTERM, on_sigterm, loop)
|
||||||
|
|
||||||
mixer_class = self.get_mixer_class(config, args.registry['mixer'])
|
mixer_class = self.get_mixer_class(config, args.registry['mixer'])
|
||||||
backend_classes = args.registry['backend']
|
backend_classes = args.registry['backend']
|
||||||
@ -300,6 +307,7 @@ class RootCommand(Command):
|
|||||||
backends = self.start_backends(config, backend_classes, audio)
|
backends = self.start_backends(config, backend_classes, audio)
|
||||||
core = self.start_core(config, mixer, backends, audio)
|
core = self.start_core(config, mixer, backends, audio)
|
||||||
self.start_frontends(config, frontend_classes, core)
|
self.start_frontends(config, frontend_classes, core)
|
||||||
|
logger.info('Starting GLib mainloop')
|
||||||
loop.run()
|
loop.run()
|
||||||
except (exceptions.BackendError,
|
except (exceptions.BackendError,
|
||||||
exceptions.FrontendError,
|
exceptions.FrontendError,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user