diff --git a/net/openconnect/files/openconnect-wrapper b/net/openconnect/files/openconnect-wrapper index eb2df54f4..744e5a5cd 100755 --- a/net/openconnect/files/openconnect-wrapper +++ b/net/openconnect/files/openconnect-wrapper @@ -11,4 +11,21 @@ test -z "$1" && exit 1 pwfile=$1 shift -cat $pwfile|/usr/sbin/openconnect $* +pidfile=/var/run/ocwrap-$$.pid + +cleanup() +{ + if ! test -z "$pid";then + kill $pid + wait $pid + fi + exit 0 +} + +trap cleanup 1 2 3 6 15 + +rm -f "$pidfile" +/usr/sbin/openconnect $* <$pwfile & +pid=$! + +wait $pid