trixie/roles/lmn_vm/files/pam-umount.sh

40 lines
1 KiB
Bash
Raw Normal View History

#!/usr/bin/bash
#
# <umount>/usr/local/sbin/pam-umount.sh %(USER) %(USERUID) %(MNTPT)</umount>'
set -eu
usr="$1"
uid="$2"
mtp="$3"
2023-09-02 16:06:15 +02:00
shutdownVMs(){
local VM
for VM in $(sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" \
XDG_CONFIG_HOME="/tmp/$uid/.config/" \
XDG_CACHE_HOME="/var/cache/user/$uid/" \
virsh list --state-running | \
sed -nE "s/.*\s+(\S+)\s+running/\1/p") ; do
sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" \
XDG_CONFIG_HOME="/tmp/$uid/.config/" \
XDG_CACHE_HOME="/var/cache/user/$uid/" \
virsh destroy "$VM" 2>&1 | systemd-cat || true
done
2023-09-02 16:06:15 +02:00
}
######################
## This is the first mount we need to get rid of:
if [[ "$mtp" =~ "/lmn/media/$usr/share" ]] ; then
2023-09-02 16:06:15 +02:00
shutdownVMs
sleep 5 # leave some time to write caches …
sudo -u ${usr} killall gvfsd | systemd-cat
sudo -u ${usr} killall dbus-daemon | systemd-cat
systemctl kill system-virtiofs.slice || true
# debug to find processes blocking umount:
# lsof >> /var/log/lsof.log
fi
2023-09-02 16:06:15 +02:00
## Just umount:
exec umount "$mtp"