# SPDX-License-Identifier: GPL-3.0-or-later
import logging
import os
-import time
import signal
import sys
-import shutil
import tools.config
import tools.helpers.ipc
from tools import services
do_stop(self.args, self.looper)
stop_container(quit_session=False)
+def handle_disconnect(args, looper):
+ do_stop(args, looper)
+ stop_container(quit_session=False)
+
def service(args, looper):
+ bus = dbus.SessionBus()
+ bus.set_exit_on_disconnect(False)
+ bus.add_signal_receiver(lambda: handle_disconnect(args, looper),
+ signal_name='Disconnected',
+ dbus_interface='org.freedesktop.DBus.Local')
dbus_obj = DbusSessionManager(looper, dbus.SessionBus(), '/SessionManager', args)
looper.run()
def sigusr_handler(data):
do_stop(args, mainloop)
+ GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGHUP, sigint_handler, None)
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGINT, sigint_handler, None)
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM, sigint_handler, None)
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGUSR1, sigusr_handler, None)