Download page Использование альтернативного механизма сброса сессий.
Использование альтернативного механизма сброса сессий
Использование альтернативного механизма сброса сессий
Агент УВ поддерживает альтернативный механизм сброса сессий через использование внешнего исполняемого файла.
Для использования механизма нужно:
создать исполняемый файл, который должен реализовать механизм сброса сессий, например, /etc/termidesk/script.sh. Содержимое исполняемого файла приведено ниже для примера;
задать исполняемому файлу флаг выполнения:
sudo chmod +x /etc/termidesk/script.sh
BASH
установить переменную LIBVIRT_PASSWORD_SCRIPT, определив ее в конфигурационном файле /etc/termidesk/termidesk-vmsd.conf. Переменная должна содержать путь к исполняемому файлу:
LIBVIRT_PASSWORD_SCRIPT=/etc/termidesk/script.sh
BASH
Если файла /etc/termidesk/termidesk-vmsd.conf нет, необходимо создать его.
Пример содержимого исполняемого файла для сброса сессий:
#!/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