mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2025-11-28 08:30:31 +08:00
84 lines
2.1 KiB
Bash
84 lines
2.1 KiB
Bash
#!/bin/sh
|
|
# prerm script for kasmvnc
|
|
#
|
|
# see: dh_installdeb(1)
|
|
|
|
set -e
|
|
|
|
# summary of how this script can be called:
|
|
# * <prerm> `remove'
|
|
# * <old-prerm> `upgrade' <new-version>
|
|
# * <new-prerm> `failed-upgrade' <old-version>
|
|
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
|
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
|
# <package-being-installed> <version> `removing'
|
|
# <conflicting-package> <version>
|
|
# for details, see https://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
stop_vncserver_systemd_services_for_all_logged_in_users() {
|
|
for session in $(list_user_sessions); do
|
|
stop_user_services "$session"
|
|
done
|
|
}
|
|
|
|
list_user_sessions() {
|
|
loginctl list-sessions --no-legend | awk '{print $1}'
|
|
}
|
|
|
|
stop_user_services() {
|
|
local session="$1"
|
|
|
|
for service in $(list_active_services); do
|
|
systemctl --user --machine=$(systemd_user_from_session "$session") stop "$service" || true
|
|
done
|
|
}
|
|
|
|
systemd_user_from_session() {
|
|
local session="$1"
|
|
|
|
echo $(loginctl show-session "$session" -p Name --value)@
|
|
}
|
|
|
|
list_active_services() {
|
|
systemctl --user --machine=$(systemd_user_from_session "$session") \
|
|
list-units --type=service --state=active --plain --no-legend | \
|
|
awk '{ print $1 }' | grep kasmvncserver
|
|
}
|
|
|
|
remove_vncserver_and_other_alternatives_from_bin() {
|
|
bindir=/usr/bin
|
|
mandir=/usr/share/man
|
|
commands="kasmvncserver kasmvncpasswd kasmvncconfig Xkasmvnc kasmxproxy"
|
|
|
|
for kasm_command in $commands; do
|
|
generic_command=`echo "$kasm_command" | sed -e 's/kasm//'`;
|
|
update-alternatives --remove "$generic_command" "$bindir/$kasm_command"
|
|
done
|
|
}
|
|
|
|
case "$1" in
|
|
remove)
|
|
stop_vncserver_systemd_services_for_all_logged_in_users || true
|
|
remove_vncserver_and_other_alternatives_from_bin
|
|
;;
|
|
|
|
remove|upgrade|deconfigure)
|
|
stop_vncserver_systemd_services_for_all_logged_in_users || true
|
|
;;
|
|
|
|
failed-upgrade)
|
|
;;
|
|
|
|
*)
|
|
echo "prerm called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# dh_installdeb will replace this with shell code automatically
|
|
# generated by other debhelper scripts.
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|