Перезапустите сеансы tmux в Ubuntu (работает на Python) - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть пять фоновых процессов, запущенных в tmux на моем сервере Ubuntu.Каждая панель представляет собой сценарий Python, который не является бесконечным циклом while.

$ tmux ls
process1: 1 windows (created Fri Dec 14 10:12:40 2018) [143x31]
process2: 1 windows (created Fri Jan 11 10:23:55 2019) [128x30]
process3: 1 windows (created Sun Feb 10 13:30:03 2019) [143x33]
process4: 1 windows (created Tue Dec 18 22:41:50 2018) [145x33]
process5: 1 windows (created Mon Jan 14 15:42:04 2019) [143x33]

Есть ли команда для остановки и запуска или перезапуска всех служб?Вместо того, чтобы заходить в каждый из них, останавливать и перезапускать его вручную?

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Самый простой метод, вероятно, будет включать

bind-key * set-window-option synchronize-pane

Эта привязка (или любая другая клавиша, которую вы выберете для установки) позволит вам набрать <prefix>*, чтобы начать печатать на все панелив вашем окне.(Отмените эту функцию с помощью <prefix>* снова)

В вашем случае, чтобы остановить их все, вы бы отправили C-C на все панели, буквально набрав Ctrl + C.Чтобы перезапустить все процессы, просто нажмите стрелку вверх, чтобы вернуться в историю каждой панели (или введите !!, если хотите), а затем нажмите Enter, чтобы запустить их снова.

Это предполагает, что запусккаждый процесс принимает одинаковое количество команд на каждой панели.

Я проверил и не могу найти способ заставить панель tmux перезапустить текущий процесс;Похоже, tmux недостаточно знает о терминалах, которые он отображает, для более гибкого ответа.

...