Почему мой сценарий не выполняется на if.up

Xen:
  • Начиная с 5.9 OpenBSD включает драйверы PVHVM включены по умолчанию. Эта фиксация , сделанная mikeb , подтверждается. Это было написано с нуля, и есть даже сравнение c с кодом FreeBSD и то, насколько драйверы OpenBSD проще и в то же время мощнее. Драйвер xen проверяет наличие паравиртуализированных устройств, таких как дисковые и сетевые интерфейсы, и выполняет гостевую инициализацию HVM domU, абстракцию для виртуальных прерываний Xen и доступ к хранилищу конфигурации XenStore.
  • FreeBSD работает таким же образом с драйверами PVHVM . Это не полный PV, но он выигрывает от драйверов с функциями PV. Разница здесь в том, что после некоторой настройки вы можете запустить FreeBSD как Dom0

Ссылки по теме:

KVM:

  • Начиная с версии 5.3, OpenBSD поддерживает virtio со спецификацией 0.95 со следующими драйверами, которые будут добавлены в некоторые выпуски позже: vio (4) - сетевое устройство, vioblk (4) - диск, viomb (4) - драйвер расширения памяти, viornd (4) - устройство случайных чисел, vioscsi (4) - адаптер SCSI; Обратите внимание, что другие технологии виртуализации поддерживают virtio (VirtualBox, Xen, bhyve). Этот интерфейс был перенесен из драйверов NetBSD.
  • Таким же образом FreeBSD реализует драйвер virtio , однако вам необходимо скомпилировать их, если вы используете версию старше 10.0 (справочная страница кажется устаревшей, так как на сегодняшний день модули включены в ] GENERIC ).Вы должны иметь хорошую производительность так же, как OpenBSD , работающая на KVM, поскольку обе ОС имеют драйверы PVH для ввода-вывода, блочного, Ethernet, scsi и шарового перемещения.

tl, dr : Оба решения виртуализации предоставят вам HVM с драйверами PVH для этих гостей. Производительность должна быть такой же или близкой.

1
06.11.2016, 01:44
1 ответ

synergyc требует доступа к серверу X11 (дисплей), и обычно его также следует запускать как обычный пользователь.

Сценарии в /etc/network/if-up.d/ , в свою очередь, запускаются от имени root и не имеют доступа к вашему дисплею X11, поэтому он у вас не работает.

Что вы можете сделать, так это настроить synergyc для подключения к правильному дисплею X11 (обычно это : 0 ), задав переменную среды DISPLAY или указав " параметр --display для synergyc .

Вы также можете использовать sudo , чтобы запустить его как настоящий пользователь (это не обязательно, но, вероятно, в любом случае является хорошей идеей).

Вот небольшой тестовый сценарий, с которым вы можете поэкспериментировать:

#!/bin/sh
[ "$IFACE" = "wlan0" ] || exit 0
export DISPLAY=:0
sudo -u YOUR_USER_NAME xclock &

Замените ИМЯ_ПОЛЬЗОВАТЕЛЯ на свое обычное имя пользователя учетной записи, а wlan0 на имя вашего интерфейса Wi-Fi (в в другом случае), а также убедитесь, что у вас установлен xclock (обычно он является частью пакета x11-apps), затем поместите его в свой / etc / network / if-up .d / , и попробуйте выключить сетевой интерфейс.

Если все пойдет хорошо, xclock будет всплывать каждый раз, когда ваш интерфейс запускается, и вы можете изменить его, чтобы вместо этого запускать synergyc .

2
27.01.2020, 23:34

Теги

Похожие вопросы