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