diff options
Diffstat (limited to 'core/modules/systemd-distro/data/opt/openslx/scripts/systemd-shutdown_prescript')
-rwxr-xr-x | core/modules/systemd-distro/data/opt/openslx/scripts/systemd-shutdown_prescript | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/core/modules/systemd-distro/data/opt/openslx/scripts/systemd-shutdown_prescript b/core/modules/systemd-distro/data/opt/openslx/scripts/systemd-shutdown_prescript new file mode 100755 index 00000000..3b5d7f92 --- /dev/null +++ b/core/modules/systemd-distro/data/opt/openslx/scripts/systemd-shutdown_prescript @@ -0,0 +1,50 @@ +#!/bin/ash + +# This script gets called by ExecStartPre from the services +# systemd-halt, systemd-poweroff, systemd-reboot. Pre-shutdown actions as +# unmounting nfs shares etc. should go here. + +PATH=/bin:/usr/bin:/opt/openslx/bin + +# kill leftover processes + +umount_nfs_shares() { + for i in "$(mount | grep 'type nfs')"; do + share=$(echo "$i"|cut -f 3 -d " ") + echo "Unmounte nfs-Share $share ...." + umount "$share" + ERROR=$? + if [ $ERROR -eq 0 ]; then + echo "nfs-Share $share unmounted." + else + echo "Could not umount nfs share $share!" + ERRORLEVEL=1 + fi + done +} + +umount_samba_shares() { + for i in "$(mount | grep 'type cifs')"; do + share=$(echo $i|cut -f 3 -d " ") + echo "Unmounte cifs-Share $share ...." + umount "$share" + ERROR=$? + if [ $ERROR -eq 0 ]; then + echo "cifs-Share $share unmounted." + else + echo "Could not umount cifs share $share!" + ERRORLEVEL=1 + fi + done +} + +# Searching for nfs-shares in mtab: +if [ $(echo /etc/mtab | cut -d " " -f 3 | grep -q nfs) ]; then + umount_nfs_shares +fi + +# Searching for samba-shares: +if [ $(echo /etc/mtab|cut -d " " -f 3 | grep -q cifs) ]; then + umount_samba_shares +fi +exit $ERRORLEVEL |