Повторное подключение к терминальному серверу - Решение //
По итогам обсуждения вот в этом топике: http://www.itadvisor.ru/node/405, решения не нашлось.
Так как мне все равно необходимо было решить эту проблему, пришлось в меру сил и знаний выдумывать что-нибудь самому.
Подсмотрев примерный вариант в теме http://www.itadvisor.ru/node/120, собрал для себя следующий пакет.
/etc/init.d/rdp_check
----------------
#!/bin/sh
case $1 in
init)
echo "* * * * * $0" >> /tmp/crontab
crontab /tmp/crontab
;;
*)
FILE=/tmp/rdpcount
RDP_RETRY_COUNT=5
[ -e $FILE ] || echo 0 > $FILE
cat /tmp/crontab | sed '$d' > /tmp/crontab
crontab /tmp/crontab
while true; do
if [ `ps | grep rdesktop | grep -v grep | wc -l` = 0 ] ; then
X=`cat $FILE`
echo $(($X+1)) > $FILE
if [ $X -gt $RDP_RETRY_COUNT ];
then
poweroff
else
killall Xorg
killall start-session
fi
fi
sleep 10
done
;;
esac
exit 0
-----------------
/etc/rc5.d/S99rdp_check -> /etc/init.d/rdp_check
Скрипт каждые 10 секунд проверяет запущенный процесс rdesktop и перезапускает его в случае необходимости.
Также заодно выключает клиент, если после 5 перезапусков вход не был выполнен. Это для пользователей, которые включили клиент и забыли про него.
Прошу указать на возможности оптимизации.
Если кому-то годится и такой вариант, прошу обращаться по email ppavel@pisem.net - вышлю готовый пакет.
Спасибо Petr за идею.
- Войдите на сайт для отправки комментариев
В стандартной
В стандартной сборке типа есть проверка, но она действует 1-2 мин. (примерно).
Мне бы подошел вариант когда скрипт проверяет не 50 сек, а например 3-5 мин, время нужное для перезагрузки терминального сервера.