Как синхронизировать процессы, запущенные в разных панелях TMUX?

Учти это:

tmux split-window -d program1 program2 # this program depends on some side effects produced by program1 

В этом случае program2 начнется, пока program1 будет готова. program1 будет посылать сигналы / выходные данные, когда он создает побочные эффекты, которые могут быть использованы program2 .

Мой вопрос: как написать сценарий оболочки, который будет ждать, пока program1 будет готова перед запуском program2 ?

Наблюдение: program2 не потребляет выход program1 , поэтому это не решается путем соединения процессов с трубой.

2 Solutions collect form web for “Как синхронизировать процессы, запущенные в разных панелях TMUX?”

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

Ответ заключается в использовании именованных каналов. Поскольку program1 отправляет выходные данные, когда он готов, все, что мне нужно, это что-то вроде этого:

 mkfifo /tmp/pipe tmux split-window -d "program1 > /tmp/pipe 2>&1" signal=`cat /tmp/pipe` program2 # This will only run after program1 has output something 

Использование такого инструмента, как FLOM (Free LOck Manager), позволит вам выполнить что-то вроде:

 tmux split-window -d "flom -- program1" flom -- program2 # this program depends on some side effects produced by program1 

если «program1» начинается до «program2», ожидаемое поведение будет:

  1. flom создаст логический ресурс и заблокирует его исключительно для "program1"
  2. flom будет выставлен на один логический ресурс для «program2» и дождитесь окончания «program1».
  • Не удалось создать указанные оконные стекла
  • Почему tmux запускается медленнее и медленнее с течением времени?
  • Как я могу узнать, участвовал ли я в сеансе tmux из сценария bash?
  • Возобновить сессию bash в новом TMUX или SCREEN?
  • Сопоставление фонового цвета в vim и tmux
  • Правильно удалите сокеты, случайно созданные с помощью tmux
  • Получение 256 цветов для работы в tmux
  • Есть ли более простой способ навигации по моему терминалу, ala tmux?
  • tmux потребляет 100% процессора
  • Есть ли эквивалент tmux "screen -D -R"
  • опция tmux `xterm-keys` не включает управление + стрелки
  • Interesting Posts

    Создать каталог, если zip-архив содержит несколько файлов

    Как я могу получить отформатированную дату для отметки времени UNIX из командной строки

    перемещение подкаталогов с помощью команды mv

    Как включить автозаполнение удаленных путей при использовании scp?

    Зашифровывает ли все мои медленные программы Lubuntu?

    VNC-сервер: отключить локальный экран при подключении удаленного клиента VNC

    Невозможно получить доступ к беспроводному интернет-соединению Eduroam SETTINGS (Linux Mint 17)

    phpmyadmin перечисляет версию моего сервера и версию клиента как отличающуюся

    Каково максимальное значение параметра rotate файла конфигурации logrotate?

    Альтернатива DynDNS для SSH?

    Как увидеть пространство, используемое / свободное от каждого PV внутри LVM

    Удалить часть пути из переменной содержимого

    Как отключить сенсорный экран

    переименовывать имена файлов на основе некоторых вычислений

    получить текст результата из команды CLI

    Linux и Unix - лучшая ОС в мире.