7

私はこのスクリプトを持っています:

#!bin/bash
NAME="user"
PIDFILE="openconnect.pid"
CERT="user.crt"
KEY="user.key"
PASS="pass"
HOST="https://example.com"
SCRIPT="/etc/vpnc/vpnc-script"

openconnect -b --script $SCRIPT --pid-file=$PIDFILE -c $CERT -k $KEY --key-password=$PASS --user=$NAME $HOST

動作しますが、何か問題が発生した場合 (サーバーの再起動やその他の問題)、VPN から切断されることがあります。そして、スクリプトを再度実行する必要があります。それを変更したり、cronジョブに追加したり、他の方法で追加したりする方法はありますか?

. このスクリプトを実行すると、証明書のパスワードを入力する必要があります。セキュリティを考慮して、自動再接続のためにそのパスワードをどこに保管すればよいのでしょうか?

4

1 に答える 1

4

PIDを確認することで、openconnect がまだ実行されているかどうかを検出できます。

pidof openconnect

これは、openconnect がまだ実行されている場合は終了値 0 を返し、それ以外の場合はゼロ以外を返します。

次のようなスクリプトがあります [テストされていませんが、ヒントが得られるはずです]:

#!/bin/bash

OPENCONNECT_PID=""
function checkOpenconnect(){
    ps -p "${OPENCONNECT_PID}"
    # print the status so we can check in the main loop
    echo $?
}

function startOpenConnect(){
    # start here open connect with your params and grab its pid
    openconnect [your params] & OPENCONNECT_PID=$!
}

startOpenConnect

while true
do
    # sleep a bit of time
    sleep 30
    OPENCONNECT_STATUS=$(checkOpenconnect)
    [ $OPENCONNECT_STATUS -ne 0 ] && startOpenConnect
done
于 2016-04-13T14:19:48.993 に答える