#!/usr/bin/bash # # /usr/local/sbin/pam-umount.sh %(USER) %(USERUID) %(MNTPT)' set -eu LANG=C usr="$1" uid="$2" mtp="$3" lmuh="/lmn/media/$usr/home" lmus="/lmn/media/$usr/share" for VMname in $(sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" \ virsh list --state-running | grep running | awk '{print $2}'); do sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" virsh destroy $VMname || true sleep 1 done #killall -9 virtiofsd if [[ "$mtp" =~ "/srv/samba/schools" ]] ; then N=0 mh=true ms=true mountpoint -q $lmuh || mh=false mountpoint -q $lmus || ms=false while [[ $N -lt 10 ]] && ([[ $mh = true ]] || [[ $ms = true ]]) ; do if [[ $mh = true ]] ; then umount "$lmuh" && mh=false fi if [[ $ms = true ]] ; then umount "$lmus" && ms=false fi N=$((N + 1)) sleep 1 done systemd-cat echo "Tried $N umount(s)." fi exec umount "$mtp"