나는 실행하려고합니다 :
- 스크립트1: VPN을 시작하려면 비밀번호가 필요합니다.
- Script2: Script1은 시작되어야 합니다(끝나면 안 됨). 원격 데스크톱 시작
하나의 명령으로 두 명령을 모두 실행할 수 있습니까? 시도할 때마다 Script1 &
오류가 발생하지만 실행하면 정상적으로 작동합니다 Script1
. Script1 && Script2
Script2를 시작해야 하는데 Script1이 아직 완료되지 않았기 때문에 이 작업을 수행할 수 없습니다 .
스크립트 1:
VPNUSER=Rilcon42
VPNGRP=01
# =============================================================================
# you shouldn't have to change anything below here
VPNURL=https://remote.someserver.edu
VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script
sudo openvpn --mktun --dev tun1 && \
sudo ifconfig tun1 up && \
sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1
sudo ifconfig tun1 down
스크립트 2:
rdesktop 123.1234.23.1453
답변1
스크립트 1+2:
VPNUSER=Rilcon42
VPNGRP=01
# =============================================================================
# you shouldn't have to change anything below here
VPNURL=https://remote.someserver.edu
VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script
sudo openvpn --mktun --dev tun1 && \
sudo ifconfig tun1 up && \
sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1 &
rdesktop 123.1234.23.1453
wait
sudo ifconfig tun1 down
답변2
터미널에서 사용자 입력을 읽는 부분은 포그라운드에서 실행되어야 합니다. 대부분의 설정에서는 sudo
포그라운드에서 실행되어야 합니다.
sudo
전체 스크립트를 호출합니다 . 연속적인 명령을 실행하기 위해 이와 같이 별도의 호출을 수행하는 것은 의미가 없습니다 sudo
.
openconnect
사용자 입력을 읽지 않는다고 가정하고 Script
다음으로 변경하십시오.
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"
그리고 VPN이 연결된 후에만 포그라운드에서 Script1을 실행합니다. (이는 감지하기 어려울 수 있습니다. 아마도 나타날 때까지 원격 측에 핑을 보내는 것일 수 있습니다.)
저는 openconnect에 익숙하지 않아서 그것이 무엇인지 추측하고 있습니다. 터미널에서 사용자 입력이 필요한 경우 백그라운드에서 실행 openconnect
한 다음 VPN 연결이 끊어질 때까지 차단하면 작동하지 않습니다. 하지만 이것이 작동하는 방식이라면 비밀번호를 읽은 후 백그라운드로 들어갈 수 있는 옵션이 있을 수 있습니다.