Download page Использование альтернативного механизма сброса сессий.
Использование альтернативного механизма сброса сессий
Использование альтернативного механизма сброса сессий
Агент УВ поддерживает альтернативный механизм сброса сессий через использование внешнего исполняемого файла.
Для использования механизма нужно:
создать исполняемый файл, который должен реализовать механизм сброса сессий, например, /etc/termidesk/script.sh. Содержимое исполняемого файла приведено ниже для примера;
задать исполняемому файлу флаг выполнения:
sudo chmod +x /etc/termidesk/script.sh
BASH
создать каталог /etc/termidesk/:
sudo mkdir /etc/termidesk
BASH
изменить права на каталог:
sudo chmod 755 /etc/termidesk
BASH
создать конфигурационный файл /etc/termidesk/termidesk-vmsd.conf:
sudo touch /etc/termidesk/termidesk-vmsd.conf
BASH
изменить права на файл:
sudo chmod 644 /etc/termidesk/termidesk-vmsd.conf
BASH
установить переменную LIBVIRT_PASSWORD_SCRIPT, определив ее в конфигурационном файле /etc/termidesk/termidesk-vmsd.conf. Переменная должна содержать путь к исполняемому файлу:
LIBVIRT_PASSWORD_SCRIPT=/etc/termidesk/script.sh
BASH
Пример содержимого исполняемого файла для сброса сессий:
#!/bin/sh
#linux-cli$ /path/to/script --protocol=spice --password=no_password --connected=disconnect sun-123
# где
#--protocol возможные варианты протокола [spice|vnc]
#--password пароль подключения
#--connected действия [ keep | disconnect | fail ]
VM_PROTOCOL=""
VM_PASSWORD=""
VM_CONNECTED=""
VM_ID=""
if [ -z "${1}" ]; then
echo "Не заданы параметры"
fi
while [ -n "${1}" ]; do
case "$(echo "${1}" | cut -d'=' -f1)" in
--protocol)
VM_PROTOCOL="$(echo "${1}" | cut -d'=' -f2)"
;;
--connected)
VM_CONNECTED="$(echo "${1}" | cut -d'=' -f2)"
;;
--password)
VM_PASSWORD="$(echo "${1}" | cut -d'=' -f2)"
;;
*)
[ "$(echo "${1}" | grep -i "one-")" ] && VM_ID="${1}"
;;
esac
shift
done
if [ -n "$(echo "$VM_CONNECTED" | grep -i "disconnect")" ]; then
IP_PORT=$(ps ax| grep -i "guest=${VM_ID}[^0-9]" | grep -v grep | sed -E -e "s/.*[[:space:]]+\-${VM_PROTOCOL}[[:space:]]+//" | cut -d' ' -f1 | sed "s/port=//" | cut -d',' -f1)
echo "VM SPICE port: $IP_PORT"
if [ "$IP_PORT" ]; then
ss --kill -t src :${IP_PORT}
fi
fi