Самый простой подход - две команды 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
.
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-доступ ).
X прозрачен для сети (по крайней мере в принципе ), поэтому вы можете запускать X-сервер где угодно, а не во всех контейнерах, содержащих приложение. Неважно, запускаете ли вы X-сервер в дополнительном контейнере (, подключенном к контейнерам приложений по сети ), на вашем хосте или даже на отдельном компьютере, который вы используете в качестве X-терминала.
Все, что вам нужно сделать, это настроить X-сервер для приема сетевых клиентов и установить DISPLAY
во всех контейнерах с приложениями на правильный адрес. Вам также может потребоваться настроить исправленные учетные данные в .Xauthory
и т. д.
Однако ,более современные приложения с графическим интерфейсом привыкли к ускоренному графическому оборудованию на том же компьютере, на котором они работают, и часто широко используют его для создания красивых эффектов. Это может не работать в сети или может работать, но может быть недостаточно быстрым или отзывчивым.
В таком случае я бы подумал о настройке какого-то решения VNC с помощью VirtualGL .