Mini Shell

Direktori : /proc/self/root/usr/libexec/dbus-1/
Upload File :
Current File : //proc/self/root/usr/libexec/dbus-1/dbus-kill-process-with-session

#!/bin/bash
# This script ensures the dbus-daemon is killed when the session closes.
# It's used by SSH sessions that have X forwarding (since the X display
# may outlive the session in those cases)
[ $# != 1 ] && exit 1

exec >& /dev/null

MONITOR_READY_FILE=$(mktemp dbus-session-monitor.XXXXXX --tmpdir)
DBUS_SESSIONS="${XDG_RUNTIME_DIR}/dbus-1/sessions"
DBUS_SESSION_ADDRESS_FILE="${DBUS_SESSIONS}/${XDG_SESSION_ID}"

trap 'rm -f "${MONITOR_READY_FILE}"; rm -f "${DBUS_SESSION_ADDRESS_FILE}"; kill -TERM $1; kill -HUP $(jobs -p)' EXIT

export GVFS_DISABLE_FUSE=1
coproc SESSION_MONITOR (gio monitor -f "/run/systemd/sessions/${XDG_SESSION_ID}" "${MONITOR_READY_FILE}")

# Poll until the gio monitor command is actively monitoring
until
    touch "${MONITOR_READY_FILE}"
    read -t 0.5 -u ${SESSION_MONITOR[0]}
do
    continue
done

# Block until the session is closed
while grep -q ^State=active <(loginctl show-session $XDG_SESSION_ID)
do
    read -u ${SESSION_MONITOR[0]}
done