
Tenho vários notebooks rodando Scientific Linux 6.3.
A função suspend está funcionando muito bem, exceto por um problema:
Quando um notebook monta um compartilhamento Samba, reproduz alguns vídeos através desse compartilhamento, a função de suspensão para de funcionar e o notebook de repente precisa5minutos para suspender.
Novamente, esse problema só ocorre se eles assistirem a vídeos no compartilhamento do samba.
PERGUNTA: POR QUE? o samba mantém algo aberto e precisa de um tempo limite de 5 minutos, logo após a função de suspensão ter sido envolvida ou o quê?
Qualquer sugestão sobre onde procurar para descobrir o que está acontecendo será apreciada. Ou uma maneira de escrever um script bash para verificar quando o botão de suspensão é pressionado para que eu possa fazer xy* algo na máquina.
(*xy=qualquer coisa que corrija este problema)
Responder1
Eu fiz a experiência de que os compartilhamentos do samba reagem muito mal se a conexão for interrompida enquanto eles estão montados.
Possivelmente a rede está caindo antes do armazenamento, então pode ser que seu sistema esteja tentando fazer algo com o compartilhamento do samba que não é possível sem conexão de rede. Uma solução alternativa seria desmontá-lo automaticamente na suspensão (e talvez remontá-lo depois):
#!/bin/bash
if [ $1 == "suspend" ]; then
umount -afl -t cifs
fi
Se você colocar isso /etc/pm/sleep.d/
e torná-lo executável, ele deverá ser executado a cada suspensão. Não posso realmente testar se isso acontecer em breve, apenas dê feedback nos comentários. No entanto, você terá problemas se os programas ainda acessarem os arquivos no compartilhamento. -l
ainda deve desmontá-lo da árvore do sistema de arquivos, -f
garantirá que funcione quando o servidor de compartilhamento não estiver acessível.
Você pode estender isso para ter estado e (tentar) restaurar suas montagens ao retomar.
Não consegui encontrar fontes oficiais. O melhor é verificar a fonte do kernel Linux e ver em que ordem os dispositivos são enviados para suspensão e ver o que o cifs tenta fazer durante a suspensão e assim por diante.
Responder2
1)
configure as permissões do 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)
com usuário normal:
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)
coloque o ícone no painel do GNOME:
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh mount"
gnome-terminal -x bash -c "/home/USERNAME/.mountsamba.sh umount"
================================================= ====================
4)
se você quiser usar 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