A parte que lê a entrada do usuário do terminal precisa ser executada em primeiro plano. Na maioria das configurações, sudo
precisa ser executado em primeiro plano.
Chame sudo
no script inteiro. Chamar sudo
separadamente para executar comandos sucessivos não faz muito sentido.
Supondo que openconnect
não leia a entrada do usuário, altere Script
para
VPNUSER=Rilcon42
VPNGRP=01
VPNURL=https://remote.someserver.edu
VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script
sudo -b sh -c '
openvpn --mktun --dev tun1 &&
ifconfig tun1 up && {
/usr/sbin/openconnect -s "$1" "$2" --user="$3" --authgroup="$4" --interface=tun1
ifconfig tun1 down
}
' "$VPNSCRIPT" "$VPNURL" "$VPNUSER" "$VPNGRP"
e execute Script1 em primeiro plano, mas somente depois que a VPN estiver conectada (o que pode ser irritante de detectar - talvez fazendo ping no terminal remoto até que apareça).
Eu não estou familiarizado com o openconnect, então estou supondo o que ele faz. Se openconnect
requer entrada do usuário do terminal e bloqueia até que a VPN seja desconectada, a execução em segundo plano não funcionará. Mas se é assim que funciona, provavelmente tem uma opção para entrar em segundo plano depois de ler a senha.