如何启动具有 2 个窗格的 tmux 会话并在每个窗格中执行预定义命令,然后才连接到这个 tmux 会话?

如何启动具有 2 个窗格的 tmux 会话并在每个窗格中执行预定义命令,然后才连接到这个 tmux 会话?

我想在 docker 中创建开发环境并在那里建立 tmux 会话,在那里我可以看到 2 个监视进程(前端监视进程和后端监视进程)。

我似乎无法理解如何编写 bash 脚本来创建带有 2 个带有预定义命令的窗格的 tmux 会话。

我想使用 tmux 而不是某种“虚拟拆分日志查看器”,这样我就可以手动重新启动每个窗格中的进程,因为有时我们在代码中犯了错误,这些错误会终止构建监视进程,需要重新启动它。

先感谢您!

答案1

这是实现此目的的一种方法

tmux new -d -s my-session-name \; split-window -h ;\ 
tmux send-keys -t my-session-name.1 "here you can write any command for process that will attach to terminal and show output, like python manage.py runserver" ENTER
tmux send-keys -t my-session-name.2 "here you can write any command for process that will attach to terminal and show output, like python manage.py runserver" ENTER

# Use this to connect whenever you want 
tmux a -t my-session-name

最后,您将拥有带有 2 个窗格的 tmux 会话,并且每个窗格都会运行进程并显示输出。

要在窗格之间切换,请使用 Ctrl-b o

注意:您看到 my-session-name 后面的数字了吗?这些是窗格

有时您必须将这些数字从 1 和 2 更改为 0 和 1。测试它,如果您只看到最后一个窗格或没有窗格执行命令 - 尝试为您的窗格找到数字。我认为认识的人可以评论如何确定哪个窗格将具有哪个数字。

例如,在我的主机上我的窗格是 1 和 2,而在 docker (debian) 中它们是 0 和 1

相关内容