Как запустить набор программ внутри tmux или gnome-terminal в сценарии?

Я хотел запустить несколько команд одновременно в tmux или gnome-terminal или xfterminal, каждой отдельной вкладке с запущенной одной командой и закрывать эту вкладку, когда эта команда завершается.

Также приветствуется любое другое программное обеспечение

Я хотел выпустить один скрипт для выполнения задания, например XX "cmd1" "cmd2" "cmd3"

27 голосов | спросил daisy 16 +04002011-10-16T11:54:26+04:00312011bEurope/MoscowSun, 16 Oct 2011 11:54:26 +0400 2011, 11:54:26

4 ответа


22
tmux new -d -s my-session 'echo window-1 pane-1; sleep 8' \; \
          split-window -d 'echo window-1 pane-2; sleep 6' \; down-pane \; \
            new-window -d 'echo window-2;        sleep 4' \; next-window \; \
                attach \;

Вышеприведенный пример общей идеи ... подробнее здесь: Как запустить streamripper и mplayer в X-терминале с раздельным экраном через один сценарий

ответил Peter.O 16 +04002011-10-16T13:35:29+04:00312011bEurope/MoscowSun, 16 Oct 2011 13:35:29 +0400 2011, 13:35:29
12

Откройте сеанс tmux и запустите первую команду. Затем запустите дополнительные команды в новых окнах и равномерно распределите размеры окон в конце.

tmux \
  new-session  "command1 ; read" \; \
  split-window "command2 ; read" \; \
  split-window "command3 ; read" \; \
  split-window "command4 ; read" \; \
  select-layout even-vertical

read после каждой команды заставляет окно оставаться открытым после завершения команды, чтобы вы могли прочитать результат.

ответил danijar 1 AMpSat, 01 Apr 2017 00:49:27 +030049Saturday 2017, 00:49:27
6

С помощью gnome-terminal это будет:

gnome-terminal --window -e 'cmd1' --tab -e 'cmd2' --tab -e 'cmd3'

Каждая вкладка будет закрыта после завершения ее команды.

ответил saeedn 16 +04002011-10-16T14:20:16+04:00312011bEurope/MoscowSun, 16 Oct 2011 14:20:16 +0400 2011, 14:20:16
6

Если это всегда одна и та же конфигурация программ, вы можете использовать такой инструмент, как teamocil .

Вам нужно создать конфигурацию (например, ~/.teamocil/sample), которая содержит что-то вроде:

windows:
  - name: my-first-window
    root: ~/Projects/foo-www
    filters:
      before: "rvm use 1.9.2"
      after: "echo 'I am done initializing this split.'"
    splits:
      - cmd: "git status"
      - cmd: "bundle exec rails server --port 4000"
        width: 50
      - cmd:
          - sudo service memcached start
          - sudo service mongodb start
        height: 50

И затем вы можете запустить: tmux new-session -d "teamocil sample" \; attach

ответил Gert 9 FriEurope/Moscow2011-12-09T19:42:31+04:00Europe/Moscow12bEurope/MoscowFri, 09 Dec 2011 19:42:31 +0400 2011, 19:42:31

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132