70 lines
1.5 KiB
Bash
70 lines
1.5 KiB
Bash
|
#!/bin/sh
|
||
|
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||
|
|
||
|
prog=$( basename $0 .bash )
|
||
|
. /usr/local/bin/usr_local_tput.bash
|
||
|
ROLE=base
|
||
|
. /usr/local/bin/usr_local_base.bash || exit 2
|
||
|
|
||
|
. ~/.bash_logout
|
||
|
|
||
|
# these can hang unmounting partitions
|
||
|
pkill dirmngr
|
||
|
pkill bootlogd
|
||
|
|
||
|
[ -x /var/local/bin/privacy_home_cleaner.bash ] && /var/local/bin/privacy_home_cleaner.bash
|
||
|
|
||
|
[ -f ~/Makefile ] && grep -q ^stop: ~/Makefile && \
|
||
|
{ cd ~ ; make stop || exit 2 ; }
|
||
|
|
||
|
a=`virsh list | wc -l`
|
||
|
[ $? -eq 0 -a -n "$a" -a "$a" -gt 0 ] && proxy_whonix_host.bash stop
|
||
|
|
||
|
local_base_umount () {
|
||
|
local mount
|
||
|
cd /mnt
|
||
|
mount=`mount`
|
||
|
for file in linux* ; do
|
||
|
echo $mount | grep -q " on /mnt/$file " || continue
|
||
|
echo /mnt/$file
|
||
|
umount -R /mnt/$file || exit 1
|
||
|
done
|
||
|
|
||
|
# not l - a b f d n u x i j k o q w e h z
|
||
|
for file in ? ; do
|
||
|
echo $mount | grep -q " on /mnt/$file " || continue
|
||
|
# echo /mnt/$file
|
||
|
umount /mnt/$file || echo WARN: $prog error umounting /mnt/$file
|
||
|
done
|
||
|
umount -a
|
||
|
}
|
||
|
|
||
|
local_base_umount # || exit 3
|
||
|
|
||
|
# should be 0
|
||
|
NUM=`losetup -a |grep -c -v home`
|
||
|
if [ $NUM -gt 0 ] ; then
|
||
|
losetup -a |grep -v home
|
||
|
echo losetup still mounted
|
||
|
exit 5
|
||
|
fi
|
||
|
|
||
|
sleep 10
|
||
|
umount -a -t ntfs-3g
|
||
|
|
||
|
# should be 1
|
||
|
NUM=`ps ax | grep mount.ntfs-3g | grep -v grep | wc -l`
|
||
|
if [ $NUM -ge 1 ] ; then
|
||
|
ps ax | grep mount.ntfs-3g | grep -v grep
|
||
|
echo ERROR: mount.ntfs-3g still running
|
||
|
exit 6
|
||
|
fi
|
||
|
|
||
|
INFO Calling shutdown
|
||
|
|
||
|
if [ $# -lt 1 ] ; then
|
||
|
shutdown -r now
|
||
|
else
|
||
|
shutdown $*
|
||
|
fi
|