gpt4 book ai didi

linux - 使用 Bash 启动和停止 openconnect

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:10 27 4
gpt4 key购买 nike

我正在努力实现以下目标:

  • ./vpnconnect.sh start 应该建立到服务器的 VPN 连接。
  • ./vpnconnect.sh stop 应该终止 VPN 连接。

这是未按预期工作的尝试 shell 脚本。它给出了错误:

~$ ./vpnconnect.sh stop
Stopping VPN connection:
./vpnconnect.sh: 22: ./vpnconnect.sh: root: not found
./vpnconnect.sh: 26: ./vpnconnect.sh: 14128: not found

脚本:

#!/bin/sh
#
#
#
#

PIDOCN=""
VAR2=""

# Start the VPN
start() {
echo "Starting VPN Connection"
eval $(echo 'TestVpn&!' | sudo openconnect -q -b --no-cert-check 127.0.0.1 -u myUser --passwd-on-stdin)
success $"VPN Connection established"
}

# Stop the VPN
stop() {
echo "Stopping VPN connection:"
VAR2=eval $(sudo ps -aef | grep openconnect)
echo $VAR2
eval $(sudo kill -9 $VAR2)

PIDOCN=eval $(pidof openconnect)
echo $PIDOCN
eval $(sudo kill -9 $PIDOCN)
}

### main logic ###
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status openconnect
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac

exit 0

最佳答案

错误信息:

./vpnconnect.sh: 22: ./vpnconnect.sh: root: not found
./vpnconnect.sh: 26: ./vpnconnect.sh: 14128: not found

来自这些行:

VAR2=eval $(sudo ps -aef | grep openconnect)
PIDOCN=eval $(pidof openconnect)

这些行是无意义的。 shell 获取 $(...) 子 shell 的输出并尝试将它们作为命令执行,使用 VAR2PIDOCN 变量设置为“评估”。这绝对不是您想要的。

可能您正在寻找更像这样的东西:

stop() {
echo "Stopping VPN connection:"
sudo ps -aef | grep openconnect
sudo kill -9 $(pidof openconnect)
}

关于linux - 使用 Bash 启动和停止 openconnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41944094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com