Try smart umount as a simple solution (no credentials needed).
This commit is contained in:
parent
fac98e9f09
commit
c59fb67ed0
5 changed files with 70 additions and 60 deletions
40
roles/lmn_vm/files/pam-umount.sh
Normal file
40
roles/lmn_vm/files/pam-umount.sh
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/bash
|
||||
#
|
||||
# <umount>/usr/local/sbin/pam-umount.sh %(USER) %(USERUID) %(MNTPT)</umount>'
|
||||
|
||||
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"
|
||||
Loading…
Add table
Add a link
Reference in a new issue