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