
Ich habe mehrere Notebooks, auf denen Scientific Linux 6.3 läuft.
Die Suspend-Funktion funktioniert recht gut, bis auf ein Problem:
Wenn ein Notebook eine Samba-Freigabe mountet und ein paar Videos über diese Freigabe abspielt, funktioniert die Suspend-Funktion nicht mehr und das Notebook muss plötzlich5Minuten zum Aussetzen.
Auch dieses Problem tritt nur auf, wenn Sie Videos über die Samba-Freigabe angesehen haben.
FRAGE: WARUM? Hält Samba etwas offen und benötigt ein Timeout von 5 Minuten, direkt nachdem die Suspend-Funktion aktiviert wurde oder was?
Ich bin für alle Vorschläge dankbar, wo ich nachsehen kann, was los ist. Oder eine Möglichkeit, wie ich ein Bash-Skript schreiben kann, um zu prüfen, wann die Suspend-Taste gedrückt wird, damit ich mit der Maschine xy* Dinge machen kann.
(*xy=alles, was dieses Problem behebt)
Antwort1
Ich habe die Erfahrung gemacht, dass Samba-Freigaben ziemlich schlecht reagieren, wenn die Verbindung während der Einbindung unterbrochen wird.
Möglicherweise fällt das Netzwerk vor dem Speichern aus, sodass Ihr System möglicherweise versucht, irgendetwas mit der Samba-Freigabe zu tun, was ohne Netzwerkverbindung nicht möglich ist. Eine Problemumgehung wäre, es beim Anhalten automatisch auszuhängen (und es anschließend möglicherweise erneut anzuhängen):
#!/bin/bash
if [ $1 == "suspend" ]; then
umount -afl -t cifs
fi
Wenn Sie das einfügen /etc/pm/sleep.d/
und ausführbar machen, sollte es bei jedem Suspend ausgeführt werden. Ich kann allerdings nicht wirklich testen, ob es schnell genug passiert, geben Sie einfach Feedback in den Kommentaren. Sie werden jedoch Probleme haben, wenn Programme weiterhin auf die Dateien in der Freigabe zugreifen. Sie -l
sollten es dennoch aus dem Dateisystembaum aushängen, -f
um sicherzustellen, dass es funktioniert, wenn der Freigabeserver nicht erreichbar ist.
Sie könnten es erweitern, um einen Status zu gewährleisten und (versuchen), Ihre Mounts bei der Wiederaufnahme wiederherzustellen.
Ich konnte keine offiziellen Quellen finden. Am besten ist es, sich den Linux-Kernel-Quellcode anzusehen und zu prüfen, in welcher Reihenfolge Geräte in den Suspend-Modus versetzt werden, und zu sehen, was CIFS im Suspend-Modus versucht usw.
Antwort2
1)
Sudo-Berechtigungen konfigurieren:
visudo
USERNAME ALL = NOPASSWD: /bin/mount //192.168.1.1/Share /home/USERNAME/Desktop/Share -t cifs*
USERNAME ALL = NOPASSWD: /bin/umount -f -a -t cifs
USERNAME ALL = NOPASSWD: /bin/umount -f -l -a -t cifs
USERNAME ALL = NOPASSWD: /sbin/modprobe -r -f cifs
===========================================================================
2)
mit normalem Benutzer:
vi ~/.mountsamba.sh; chmod +x ~/.mountsamba.sh
#!/bin/bash
case $1 in
mount)
echo 'In progress...'
/usr/bin/sudo /bin/mount //192.168.1.1/Share /home/USERNAME/Desktop/Share -t cifs -o ro,bg,intr,soft,noexec,nosuid,nodev,password=,nolock
pkill nautilus
echo "MOUNTShare - `date`" | /usr/bin/logger
;;
umount)
echo 'folyamatban...'
/usr/bin/sudo /bin/umount -f -a -t cifs
/usr/bin/sudo /bin/umount -f -l -a -t cifs
sleep 5
/usr/bin/sudo /sbin/modprobe -r -f cifs
pkill nautilus
echo "UMOUNTShare - `date`" | /usr/bin/logger
;;
*)
exit 1
;;
esac
===========================================================================
3)
Symbol in GNOME-Panel einfügen:
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh mount"
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh umount"
==========================================================================
4)
wenn Sie Autofs verwenden möchten:
vi /etc/auto.master
/- /etc/auto.samba --timeout=120
vi /etc/auto.samba
/home/USERNAME/Desktop/Share -fstype=cifs,bg,intr,soft,ro,noexec,nosuid,nodev,password=,nolock ://192.168.1.1/Share