From 6a3269d358ba5e6eea84f331aa0f2b69e159997c Mon Sep 17 00:00:00 2001 From: Aren Moynihan Date: Fri, 20 Oct 2023 14:09:09 -0400 Subject: [PATCH] sxmo_init: run cleanup when killed If system service manager stops tinydm (e.g. if someone runs service tinydm restart) it should send sigterm to this script. If we're allowed a chance to, we should do our best to cleanup in this case. Signed-off-by: Willow Barraco --- scripts/core/sxmo_init.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/core/sxmo_init.sh b/scripts/core/sxmo_init.sh index c422236..930299a 100644 --- a/scripts/core/sxmo_init.sh +++ b/scripts/core/sxmo_init.sh @@ -10,12 +10,19 @@ start() { [ -f "$XDG_STATE_HOME"/sxmo.log ] && mv "$XDG_STATE_HOME"/sxmo.log "$XDG_STATE_HOME"/sxmo.log.old if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then - dbus-run-session -- "$0" "with_dbus" + dbus-run-session -- "$0" "with_dbus" & else # with_dbus calls exec because dbus-run-session starts it in a # new shell, but we need to keep this shell; start a subshell - ( with_dbus ) + ( with_dbus ) & fi + wait +} + +finish() { + cleanup + sxmo_hook_stop.sh + exit } init() { @@ -33,9 +40,9 @@ init() { . "$XDG_CONFIG_HOME/sxmo/profile" cleanup + + trap 'finish' INT TERM EXIT start - cleanup - sxmo_hook_stop.sh } if [ -z "$1" ]; then