我的 fstab 中有这个条目:
sc-netapp48.nvidia.com:/vol/scratch9/scratch.securesign_new /home/scratch.securesign_new nfs _netdev,comment=systemd.automount 0 0
我不确定这到底是如何工作的,但是当我在 VPN 上并且需要访问/home/scratch.securesign_new
时,它会神奇地出现。
但是,当我从 VPN 断开连接时,它似乎/home/scratch.securesign_new
仍然挂载。这会导致各种问题。例如,每当我安装程序时,安装程序都会尝试访问/home/scratch.securesign_new/.config
不存在的 .
所以我需要能够umount -l /home/scratch.securesign_new
在 VPN 关闭时做到这一点。我怎么做?我尝试在 中添加一个脚本/etc/network/if-down.d/
,但是当 VPN 关闭时该脚本没有执行。
我正在运行 Kubuntu 20.04。
我确认
/etc/network/if-down.d/
从 openconnect vpn 断开连接时,脚本似乎根本没有被调用。但是
/etc/network/if-post-down.d/
确实会被调用,因此您可以将脚本放在那里。确保脚本的权限为 755。有两种选择:要么检查
openconnect
进程是否存在,要么每隔 1 秒检查一次 IP 地址,以确定我们是否仍在 VPN 上。我假设 IP 地址在OpenConnect会话期间保持不变。所以这应该有效:并且随意摆弄前面的数字。
sleep
我在启动 VPN 服务后添加了 10 秒的延迟,因为 VPN 连接可能需要一段时间才能真正启动。我使用网站ifconfig.me来获取 IP 地址。但是,如果您想定期使用它,它可能不是可靠的信息来源(我的意思是它可能由于某种原因而崩溃,我不知道)。并且如果您的终端不通过 OpenConnect 发送流量(对不起,因为我不使用它所以对此一无所知),您必须在脚本的基于 IP 地址部分之前添加它:
如果有更好的解决方案,我很高兴听到。
希望能帮助到你。