Такая проблема. Есть настроенные и полностью работоспособные сервера (windows

Есть компьютеры - которые не поддерживают загрузку из сети, а часть из них подключается через впн. Нужно обеспечить доступ пользователям в терминал - обходя сам компьютер.(То есть сразу при старте - вход на сервер) На винде это сделать оч. легко - но Windows денег стоит, а баловаться не лицензией нельзя да и не хорошо. Пробую реализовать все под Ubuntu. Нужна помощь с написанием одного скрипта.
Что делает:При старте машины скрипт ждет подключения опен впн (уже настроено), а затем подключается к сеансу. Если вдруг обрыв соединения - сеанс должен завершатся и оповещать о причине пользователя. Как только соединение будет восстановлено сеанс должен автоматически запустится снова.
У меня было вот так:#!/bin/bash
#server_ping
last_state=1
while true; do
ping -c 1 -W 2 100.100.100.100 > /dev/null
state=$?
if [ "$last_state" -ne "$state" ]; then
if [ "$state" -eq "0" ]; then
DISPLAY=:0.0;
ADDRESS="100.100.100.100"
if ping -c 3 -s 10 -W 10 $ADDRESS
then
rdesktop 100.100.100.100 -z -P -f -u UserLogin -k common
else
notify-send "Сервер недоступен! - Проверьте интернет соединение"
fi
else
notify-send "Сервер недоступен! - Проверьте интернет соединение. При восстановлении соединения сеанс будет запущен автоматически"
fi
fi
last_state=$state
sleep 10s
done
Здесь основная проблема что для подключения используется rdesktop, который при обрыве - просто виснет.Сделал такой кусочек еще:#!/bin/bash
ps ax | grep -v grep | grep rdesktop
if [ $? -ne 0 ]
then
notify-send "Сервер недоступен! - Проверьте интернет соединение. При восстановлении соединения сеанс будет запущен автоматически"
else
pkill rdesktop
notify-send "Возможно произошел обрыв соединения! При восстановлении соединения сеанс будет запущен автоматически" > /dev/null
fi
По отдельности все отрабатывает на ура. Но вот только соединил - перестало работать:#!/bin/bash
#server_ping
last_state=1
while true; do
ping -c 1 -W 2 100.100.100.100 > /dev/null
state=$?
if [ "$last_state" -ne "$state" ]; then
if [ "$state" -eq "0" ]; then
DISPLAY=:0.0;
ADDRESS="100.100.100.100"
if ping -c 3 -s 10 -W 10 $ADDRESS
then
rdesktop 100.100.100.100 -z -P -f -u UserLogin -k common
else
notify-send "Сервер недоступен! - Проверьте интернет соединение"
fi
else
ps ax | grep -v grep | grep rdesktop
if [ $? -ne 0 ]
then
notify-send "Сервер недоступен! - Проверьте интернет соединение. При восстановлении соединения сеанс будет запущен автоматически"
else
pkill rdesktop
notify-send "Возможно произошел обрыв соединения! При восстановлении соединения сеанс будет запущен автоматически" > /dev/null
fi
fi
last_state=$state
sleep 10s
done
Помогите пожалуйста найти ошибки!p.s
Если у кого есть идеи как это сделать лучше буду рад.