
我有幾台筆記本運行 Scientific Linux 6.3。
掛起功能運作得很好,除了一個問題:
當筆記本掛載Samba共享,透過該共享播放一些視頻,然後掛起功能停止工作,筆記本突然需要5分鐘暫停。
同樣,只有當他們透過 samba 分享觀看影片時才會出現此問題。
問題: 為什麼? samba 是否會在涉及掛起功能之後保持某些內容開啟並需要 5 分鐘的超時時間還是什麼?
任何關於在哪裡尋找以了解正在發生的事情的建議將不勝感激。或者我可以編寫一個 bash 腳本來檢查何時按下暫停按鈕,以便我可以對機器執行 xy* 操作。
(*xy=解決此問題的任何內容)
答案1
我的經驗是,如果安裝時連線中斷,samba 共享的反應會非常糟糕。
網路可能在儲存之前就已關閉,因此您的系統可能正在嘗試對 samba 共用執行任何操作,而如果沒有網路連接,則無法完成這些操作。解決方法是在掛起時自動卸載它(然後可能重新安裝它):
#!/bin/bash
if [ $1 == "suspend" ]; then
umount -afl -t cifs
fi
如果您將其放入/etc/pm/sleep.d/
並使其可執行,則它應該在每次掛起時執行。我無法真正測試它是否很快發生,只需在評論中提供反饋即可。但是,如果程式仍在存取共享中的文件,您就會遇到問題。-l
仍然應該從檔案系統樹中卸載它,-f
以確保它在共享伺服器無法存取時正常工作。
您可以將其擴展為有狀態並(嘗試)在恢復時恢復您的坐騎。
我無法找到官方消息來源。最好的方法是檢查 Linux 核心原始碼,查看裝置發送到掛起的順序,並查看 cifs 在掛起時嘗試執行的操作等。
答案2
1)
配置sudo權限:
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)
與一般用戶:
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)
將圖示放入 GNOME 面板中:
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh mount"
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh umount"
==================================================== = ====================
4)
如果你想使用 autofs:
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