나는 Scientific Linux 6.3을 실행하는 노트북을 여러 대 가지고 있습니다.
일시 중지 기능은 한 가지 문제를 제외하고 완벽하게 작동합니다.
노트북이 Samba 공유를 마운트하고 해당 공유를 통해 몇 가지 비디오를 재생하면 일시 중지 기능이 작동을 멈추고 노트북에 갑자기5잠깐 멈춤.
다시 말하지만, 이 문제는 삼바 공유를 통해 비디오를 볼 때만 발생합니다.
질문: 왜? 일시 중지 기능이 포함된 후 Samba가 무언가를 열어두고 5분의 시간 초과 등을 요구합니까?
무슨 일이 일어나고 있는지 알아내기 위해 어디를 봐야 할지에 대한 제안을 주시면 매우 감사하겠습니다. 또는 시스템에서 xy* 작업을 수행할 수 있도록 일시 중지 버튼을 눌렀는지 확인하는 bash 스크립트를 작성할 수도 있습니다.
(*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-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