Может кто-нибудь объяснить, что происходит с tmux, bash и exec? Я пытаюсь настроить сеанс tmux с 4-оконным окном. В идеале, я хочу запустить команду в 3 из панелей: например. сервер Ruby Thin и несколько демонов Ruby. Это то, что у меня есть до сих пор:
~/.bin/tmux-foo:
#!/bin/sh
tmux new-session -d -s foo 'exec pfoo "bundle exec thin start"'
tmux rename-window 'Foo'
tmux select-window -t foo:0
tmux split-window -h 'exec pfoo "bundle exec compass watch"'
tmux split-window -v -t 0 'exec pfoo "rake ts:start"'
tmux split-window -v -t 1 'exec pfoo'
tmux -2 attach-session -t foo
~/.bin/pfoo:
#!/bin/bash
cd ~/projects/foo
rvm use ree
# here I want to execute command1 2 3 or 4...
exec $SHELL
Все работает... но когда я ctlr-c в первой панели, на которой запущен тонкий сервер, он останавливает тонкий сервер и возвращается в оболочку. Однако команда не находится в истории; то есть, если я нажимаю клавишу "вверх", я не получаю команду bundle exec thin start... Я получаю другую команду из моей истории bash. Мне интересно, есть ли способ организовать эти сценарии, чтобы получить команды в истории bash.
Также... Я пробовал много комбинаций exec, exec $SHELL -s ... и exec $SHELL -s ... -I, и я не совсем уверен, что происходит...
Может кто-нибудь объяснить общую идею того, что происходит с tmux и bash и exec здесь?