Montag, 5. Oktober 2009

Ubuntu - Langsames Ausschalten durch cifs-Verbindung

Verbindet man unter Ubuntu 9.04 eine cifs/smb Freigabe mittels mount, so wartet beim Herunterfahren das System bei jeder Freigabe auf ein Timeout, da dem cifs-Treiber der Kernel unter den Füßen weggezogen wird. Abhilfe kann man mit folgendem script erreichen welches beim herunterfahren automatisch gestartet werden muß.

Erzeuge die Datei "mountcifs" mit folgendem Inhalt:

#!/bin/bash
#
# mountcifs - Unmounts samba-cifs filesystems
# -> convenience script to be called in the shutdown/reboot sequence of Ubuntu Dapper
#    as K02umountcifs
# Written by Max Durden
# max.durden@gmail.com
#

start() {
echo "mountcifs: nothing to do!"
}

stop() {
echo "Unmounting samba-cifs filesystems..."
MOUNTED_CIFS_DIRS=`mount -t cifs| cut -d\  -f3`
MOUNTED_DIRS_ARRAY=($MOUNTED_CIFS_DIRS)
for i in ${!MOUNTED_DIRS_ARRAY[@]}
do
  umount -l ${MOUNTED_DIRS_ARRAY[i]}
done
}

status() {
echo "Mounted samba-cifs filesystems..."
mount -t cifs| cut -d\  -f3
}

restart() {
echo "restart ..."
start
}

reload() {
echo "start ..."
start
}

force_reload() {
echo "force-reload ..."
start
}

case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
reload)
reload
;;
force-reload)
force_reload
;;
*)
echo "Usage: mountcifs {start|stop|restart|reload|force-reload|status}"
;;
esac

exit 0

Kopiere die Datei wie folgt ins etc-Verzeichnis:

sudo cp mountcifs /etc/init.d/mountcifs
sudo chmod 755    /etc/init.d/mountcifs
sudo ln -s /etc/init.d/mountcifs /etc/rc0.d/K02mountcifs
sudo ln -s /etc/init.d/mountcifs /etc/rc6.d/K02mountcifs



Keine Kommentare:

Kommentar veröffentlichen