Как мне запустить X-сервер в контейнере поверх Wayland без накладных расходов Xwayland?

Самый простой подход - две команды find :

find /var/sync/ -name 'sync.php' -execdir php {} \;
find /var/sync/ -name 'Replicator.php' -execdir php {} \;

Они будут искать файлы с именами sync.php или Replicator.php , затем cd в их родительский каталог и выполните их с помощью php . Вы можете добавить команды прямо в ваш crontab:

0 30 * * * find /var/sync/ -name 'sync.php' -execdir php {} \;
0 0 * * * find /var/sync/ -name 'Replicator.php' -execdir php {} \;

Если вам нужно, чтобы скрипты Replicator запускались с 30-минутной паузой между ними, вы можете сделать что-то вроде:

find /var/sync/ -name 'Replicator.php' -execdir php {} \; -exec sh -c "sleep 30m" \;

Это сначала запустит скрипт, затем подождите 30 минут, прежде чем переходить к следующему.

Наконец, если вам нужно убедиться, что i) у вас никогда не было одновременно запущено> 1 sync.php и ii) каждый сценарий sync запускался после соответствующего Сценарий replicator завершен, вы можете использовать его в качестве команды для cron:

find /var/sync/ -name 'Replicator.php' -execdir php {} \; ; find /var/sync/ -name 'sync.php' -execdir php {} \;

Приведенное выше будет запускать каждый из сценариев Replicator.php первым (один за другим, не параллельно), и по завершении запускает каждый из сценариев sync.php .

1
27.03.2018, 23:19
2 ответа

My issue is I'm trying to have a main Wayland based gui/desktop while X apps are isolated in containers. Isn't there a way to run those X apps inside containers without the Xwayland overhead?

Цитируемый комментарий сбивает с толку. Пожалуйста, внимательно изучите ответ, который сразу же следует за ним, и проясните эту путаницу.

You need an X server in any case.


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

Если вы хотите избежать накладных расходов и в полной мере использовать производительность Wayland -, вам нужны контейнеры, поддерживающие собственные контейнеры Wayland. Например, запускать приложения Flatpak под Wayland. (Насколько я знаю, если вы запускаете приложения Flatpak под X рабочим столом, он просто сдается и разрешает полный небезопасный X-доступ ).

1
27.01.2020, 23:44

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

Все, что вам нужно сделать, это настроить X-сервер для приема сетевых клиентов и установить DISPLAYво всех контейнерах с приложениями на правильный адрес. Вам также может потребоваться настроить исправленные учетные данные в .Xauthoryи т. д.

.

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

В таком случае я бы подумал о настройке какого-то решения VNC с помощью VirtualGL .

0
27.01.2020, 23:44

Теги

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