libreoffice: kill private dbus instance on exit

if the libreoffice wrapper doesn't find a dbus instance in the
environment it starts one, but then neglects to clean it up. over time
this can litter the system with orphaned dbus instances. kill the daemon
as well instead of just removing the socket directory.
wip/yesman
pennae 3 years ago
parent 842f900e73
commit df6c714d82
  1. 5
      pkgs/applications/office/libreoffice/wrapper.sh

@ -2,7 +2,7 @@
export JAVA_HOME="${JAVA_HOME:-@jdk@}"
#export SAL_USE_VCLPLUGIN="${SAL_USE_VCLPLUGIN:-gen}"
if uname | grep Linux > /dev/null &&
if uname | grep Linux > /dev/null &&
! ( test -n "$DBUS_SESSION_BUS_ADDRESS" ); then
dbus_tmp_dir="/run/user/$(id -u)/libreoffice-dbus"
if ! test -d "$dbus_tmp_dir" && test -d "/run"; then
@ -14,6 +14,7 @@ if uname | grep Linux > /dev/null &&
fi
dbus_socket_dir="$(mktemp -d -p "$dbus_tmp_dir")"
"@dbus@"/bin/dbus-daemon --nopidfile --nofork --config-file "@dbus@"/share/dbus-1/session.conf --address "unix:path=$dbus_socket_dir/session" &> /dev/null &
dbus_pid=$!
export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
fi
@ -27,5 +28,5 @@ done
"@libreoffice@/bin/$(basename "$0")" "$@"
code="$?"
test -n "$dbus_socket_dir" && rm -rf "$dbus_socket_dir"
test -n "$dbus_socket_dir" && { rm -rf "$dbus_socket_dir"; kill $dbus_pid; }
exit "$code"

Loading…
Cancel
Save