настройте права доступа sudo:

настройте права доступа sudo:

У меня есть несколько ноутбуков под управлением 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

==
...

с обычным пользователем:

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

Связанный контент