我正在尝试使用 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 输出发送到日志文件。