openVPN 命令执行后 Shell 脚本无法继续

openVPN 命令执行后 Shell 脚本无法继续

我正在尝试使用 shell 脚本来启动 openVPN 连接并挂载我可以通过该连接访问的文件夹。(我不太了解 shell 脚本)。

所以我创建了这个脚本:

#!/bin/bash
openvpn --config /etc/openvpnconfig/openvpn.ovpn --auth-nocache --auth-retry none --replay-window 128 30 & pid=$!
if mountpoint -q /mnt/remote; then
  exit 0
else
  mount /mnt/remote
fi

但是,运行此脚本时,它不会超出 openvpn 调用。我以为 & 可以避免这种情况,因为它在终端中使用时会重新提供访问权限,但我想我错了。

根据壳牌检测语法应该没有问题。

有什么方法可以确保 openVPN 初始化完成后脚本继续运行?

背景:我希望我的 Bacula 备份系统使用此脚本,并且连接仅在需要备份时才打开。因此,在这种情况下,单独执行 openvpn 和 mount 不会改变问题。

答案1

为了防止脚本锁定,我决定添加选项

-daemon  

到 openvpn 调用以将实际的 openvpn 操作与脚本分开。

虽然这会停止 openvpn 输出,但至少允许脚本继续运行。如果有必要,我将稍后研究将 openvpn 输出发送到日志文件。

相关内容