Как запустить виртуальную машину KVM-QEMU после подключения к порту VNC через системные сокеты?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Как запустить виртуальную машину KVM-QEMU после подключения к порту VNC через системные сокеты?

Сообщение Anonymous »


Я пытаюсь держать свои виртуальные машины в незапущенном состоянии до тех пор, пока они не потребуются. И затем держите их включенными, пока пользователи или я не отключим их. Я пытаюсь автоматически запустить соединение с VNC-сервером через порт 5900 (пример № 1) или перенаправить его на другой порт, который позже перенаправит его на порт 5900 (пример № 2). Прямо сейчас у меня есть туннели Cloudfare, которые отображают VNC прямо в браузере. Я попробовал два разных подхода:

Первая идея kvm1.socket (порт 5900) kvm1.service (запуск виртуальной машины с VNC через порт 5900)

и

Вторая идея: kvm1-proxy.socket (порт 5888) kvm1-proxy.service (перенос на порт 5900) kvm1.service (запуск виртуальной машины с VNC через порт 5900)

Конфигурационные файлы для первой идеи kvm1.socket

[Единица измерения] Описание=Разъем виртуальной машины KVM1 [Разъем] ListenStream=5900 NoDelay=истина DeferAcceptSec=15 [Установить] WantedBy=sockets.target kvm1.service

[Единица измерения] Описание = квм1 После=network.target [Услуга] Тип=уведомить ExecStart = виртуальный запуск ubuntu23.10-kvm1 #ExecStartPost=/usr/local/bin/waitport 127.0.0.1 5900 #Это что-то вроде сценария, который выполняет "переход в сон каждые 0,1 секунды, пока порт не откроется" #ExecStop=выключение Virsh ubuntu23.10-kvm1 [Установить] WantedBy=multi-user.target Результаты: $ sudo systemctl включить kvm1.socket $ sudo systemctl запустить kvm1.socket

сокет прослушивает порт 5900 Как только я подключусь к нему:

26 февраля 00:16:46 имя хоста systemd[1]: прослушивание kvm1.socket — сокета виртуальной машины KVM1. 26 февраля 00:17:53 имя хоста systemd[1]: kvm1.socket: Ошибка с результатом «начало службы-лимит-хит». 26 февраля 00:17:52 имя хоста systemd[1]: Запуск kvm1.service - kvm1... 26 февраля 00:17:53 имя хоста virsh [2120685]: ошибка: не удалось запустить домен «ubuntu23.10-kvm1» 26 февраля 00:17:53 имя хоста virsh [2120685]: ошибка: внутренняя ошибка: QEMU неожиданно закрыл монитор ( вм='ubuntu23.> 26 февраля 00:17:53 имя хоста systemd[1]: kvm1.service: основной процесс завершен, код = выход, статус = 1/FAILURE 26 февраля 00:17:53 имя хоста systemd[1]: kvm1.service: Ошибка с результатом «код выхода». 26 февраля 00:17:53 имя хоста systemd[1]: не удалось запустить kvm1.service — kvm1. 26 февраля 00:17:53 имя хоста systemd[1]: kvm1.service: Запрос на запуск повторяется слишком быстро. 26 февраля 00:17:53 имя хоста systemd[1]: kvm1.service: Ошибка с результатом «код выхода». 26 февраля 00:17:53 имя хоста systemd[1]: не удалось запустить kvm1.service — kvm1. Можно ли в любом случае запустить KVM с сокетом, используя тот же порт?

Проверка второго варианта подключитесь к 5888 (через Cloudflare в браузере) и проксируйте его на порт 5900.

kvm1-proxy.socket

[Единица измерения] Описание=Разъем виртуальной машины KVM1 [Разъем] ListenStream=5888 NoDelay=истина DeferAcceptSec=15 [Установить] WantedBy=sockets.target kvm1-proxy.service

[Единица измерения] Требуется=kvm1.service После=kvm1.service [Услуга] ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:5900 kvm1.service

[Единица измерения] Описание=квм1 [Услуга] ExecStart = виртуальный запуск ubuntu23.10-kvm1 ExecStartPost=/bin/sleep 1 ExecStop=выключение Virsh ubuntu23.10-kvm1 [Установить] WantedBy=multi-user.target Результаты: $ sudo systemctl включить kvm1-proxy.socket $ sudo systemctl start kvm1-proxy.socket

$ sudo systemctl status kvm1-proxy.socket

Активен: активен (прослушивает) с понедельника 26 февраля 2024 г., 00:28:13 CST; 1мин 48с назад Триггеры: ● kvm1-proxy.service. Слушайте: [::]:5888 (поток) 26 февраля 00:28:13 имя хоста systemd [1]: прослушивание kvm1-proxy.socket — сокета виртуальной машины KVM1. KVM1.service запускается, и виртуальная машина работает.

Теперь, как я могу отключить kvm1-proxy.socket при выключении виртуальной машины? По сути, таким образом он остается активным навсегда.

kvm1-proxy.service Загружено: загружено (/etc/systemd/system/kvm1-proxy.service; static) Активно: активно (работает) с понедельника 26 февраля 2024 г. 00:31:39 CST; 4 минуты 12 секунд назад TriggeredBy: ● kvm1-proxy.socket Основной PID: 2138322 (systemd-socket-) Задачи: 2 (ограничение: 154233) Память: 1,0 МБ ЦП: 6 мс CGroup: /system.slice/kvm1-proxy.service └─2138322 /lib/systemd/systemd-socket-proxyd 127.0.0.1:5900 26 февраля 00:31:39 имя хоста systemd[1]: запущен kvm1-proxy.service. 26 февраля 00:31:39 имя хоста systemd-socket-proxyd [2138322]: не удалось подключиться к удаленному хосту: соединение отклонено Идея состоит в том, что он остается включенным до тех пор, пока пользователь не выключит его (при отключении питания виртуальной машины или выключении virsh ubuntu23.10-kvm1). systemd status видит его в неактивном состоянии (работает или завершает работу). Поэтому kvm1-proxy.service остается «активным» и никогда не запустит машину для следующего цикла. Как я могу узнать systemd, когда виртуальная машина выключена и proxy.service отключается?
kvm1.service — kvm1 Загружено: загружено (/etc/systemd/system/kvm1.service; отключено; предустановлено: включено) Активен: неактивен (мертв) с понедельника 26 февраля 2024 г., 00:31:40 CST; 4 минуты 37 секунд назад Продолжительность: 664 мс Процесс: 2138228 ExecStart=virsh start ubuntu23.10-kvm1 (код=выход, статус=0/УСПЕХ) Процесс: 2138229 ExecStartPost=/bin/sleep 1 (код=выход, статус=0/УСПЕХ) Процесс: 2138370 ExecStop=virsh завершение работы ubuntu23.10-kvm1 (код=выход, статус=0/УСПЕХ) Основной PID: 2138228 (код=выход, статус = 0/УСПЕХ ЦП: 46 мс
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Можно ли портировать телефон Android на виртуальную машину qemu?
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Вложенная виртуализация KVM: kvm-adm или kvm_amd? [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • SteamOS на Android через Termux, VNC и Qemu
    Anonymous » » в форуме Android
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Qemu установлен правильно и работает, но нет /dev/kvm на Arm64 Ubuntu [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Включение счетчиков производительности PEBS в гостевой виртуальной машине Linux с помощью QEMU/KVM
    Anonymous » » в форуме Linux
    0 Ответы
    76 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»