Как синхронизировать процессы, запущенные в разных панелях 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 count windows начиная с 1 вместо 0?
  • tmux / screen ctrl + стрелка (слева направо) не работает на SSH
  • Различные конфигурации tmux для разных сеансов?
  • Имитация оболочки оболочки GNU в tmux
  • tmux: включить мышь только при нажатии сдвига
  • Разделить окно tmux с той же начальной командой в новой панели tmux
  • Как быстро отправлять команды для вложенных сеансов tmux?
  • TMUX 2.3 копировать в буфер обмена
  • Создайте киоск с tmux
  • tmux status-bar # (pwd) не перезагружается
  • Как связать несколько команд tmux с одним нажатием клавиши?
  • tmux start process, если он еще не запущен
  • Interesting Posts

    Найдите каждую строку, соответствующую шаблону, но напечатайте только строку над ней

    что такое «firewalld –nofork»

    Как преобразовать относительный к абсолютному пути, портативно и надежно?

    Dropbear сразу же отключает соединение на DD-WRT

    Используйте некоторый загрузчик EFI для загрузки MBR

    В чем разница между ошибкой «не найденной» и ошибкой «команда не найдена» – это то же самое?

    Установка ошибки dotnet-cli

    Что делает Pulseaudio отправлять сетевые данные без потока?

    Debian 9: невозможно использовать sudo

    RC-сценарий, который выдается на передний план по определенным критериям

    Debian Jessie GRUB2 на многопользовательском ноутбуке EFI не может запускать ядро-initramf для Gentoo

    Сценарий оболочки и добавление больших значений в проблему с ограниченным файлом

    Заблокировать пакет для удаления в APT

    Какой сетевой интерфейс используется, если они оба являются шлюзом по умолчанию?

    Как создать Swap из уже созданных точек монтирования

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