32

I wanted to launch a few commands simultaneously in tmux or gnome-terminal or xfterminal , every different tab with a single command running , and close that tab when that command finishes.

Any other software is welcomed as well

I wanted to issue a single script to do the job , e.g XX "cmd1" "cmd2" "cmd3"

26
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 \;

The above is a running example of the general idea ... more here: How to run streamripper and mplayer in a split-screen X terminal, via a single script

26

Open a tmux session and start the first command. Then launch more commands on new windows and evenly distribute the window sizes at the end.

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

The read after each command causes the window to stay open after the command has finished so that you can read the output.

  • 2
    This answer deserves more votes. Thanks man. – Lester Cheung Jun 2 '17 at 6:16
6

With gnome-terminal it would be:

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

Each tab will be closed after its command is finished.

  • great as well , but i do prefer tmux this time ;-P – daisy Oct 16 '11 at 10:52
6

If it's always the same configuration of programs, you can use a tool like teamocil.

You'll need to create with a configuration (e.g. ~/.teamocil/sample), which contains something like:

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

And then you can run: tmux new-session -d "teamocil sample" \; attach

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.