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