LINUX.ORG.RU

NFS + NetworkManager, unmount timeout

 , ,


0

1

Добрый вечер. Есть в локальной сети NFS-сервер, есть ноут с арчем (и systemd), хочу сделать так, чтобы при подключении к домашней wi-fi сети подключалась NFS.

Прописал монтирование в /etc/NetworkManager/dispatcher.d/01-nfs :

#!/bin/bash

INTERFACE=$1
ACTION=$2

MOUNT_PATH="/home/stormchild/public"
MNT_ARGS="rw,noatime,noexec,nosuid,tcp,async,rsize=32768,wsize=32768,intr,nolock,soft,noauto,_netdev"
SERVERIP="192.168.1.3"

HOME_NETWORK_UNAVAILABLE=`ping $SERVERIP -c 1 2>&1 | grep -i "unreachable" | wc -l`

function mount_scserver {
    mount -t nfs  $SERVERIP:/m/public $MOUNT_PATH -o $MNT_ARGS

}
function umount_scserver {
    umount -fl $MOUNT_PATH
}

case "$ACTION" in
    up)
		if [ "$HOME_NETWORK_UNAVAILABLE" == "0" ]; then
			SRV_MOUNTED=`grep scsrv /etc/mtab`
			if [ -z "$SRV_MOUNTED" ]; then
				mount_scserver
			fi
		fi
        ;;
    down)
        if [ "$HOME_NETWORK_UNAVAILABLE" == "1" ]; then
            SRV_MOUNTED=`grep scsrv /etc/mtab | wc -l`
            if [ -n "$SRV_MOUNTED" ]; then
                umount_scserver
            fi
        fi
        ;;
esac

Проверка по пингу выглядит идиотской, но пока не придумал ничего лучше.

Всё хорошо до момента, пока не теряется связь с сервером. Насколько я понимаю, в таком случае доступ к отпавшему ресурсу блокируется и его нельзя даже отмонтировать, не прибив использующие его процессы. Особенно забавно получается при выключении ноута, если открыт файл из nfs: NetworkManager вырубается успешно, а отмонтировать у системы не получается из-за заблокированного ресурса... Хотелось бы, чтобы по истечению какого-то таймаута недоступный сетевой ресурс сам отмонтировался. Как об этом сообщить systemd ?

Что люди не делают, лишь бы autofs не использовать...

YAR ★★★★★
()
Ответ на: комментарий от menefis

Спасибо, autofs едйствительно решает проблемы. Не все, но выключить ноут при открытом файле из nfs получается.

Для истории:

/etc/autofs/auto.master

/mnt/scsrv /etc/autofs/auto.nfs --timeout=5

/etc/autofs/auto.nfs

public  -fstype=nfs,rw,noatime,noexec,nosuid,tcp,async,rsize=32768,wsize=32768,intr,nolock,soft,noauto  192.168.1.3:/m/public

OramahMaalhur
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.