我需要一种方法来在 tmux 窗格的进程终止后立即重新启动该窗格中的主进程。
我使用 byobu-tmux 来运行我正在开发的客户端服务器(grails)应用程序的各种组件。我编写了一个 shell 脚本,用于打开窗格并启动所有组件:
byobu-tmux split-window -h "sleep 10; <client-1-start-script>"
byobu-tmux split-window -t 1 -v -p 66 "sleep 10; <client-2-start-script>"
byobu-tmux split-window -t 2 -v -p 50 "sleep 10; <client-3-start-script>"
byobu-tmux split-window -t 0 -v "<server-start-script>"
该脚本可以工作,但是正如您对 tmux 所期望的那样,每当您杀死其中一个片段时,它都会关闭该窗格。我还尝试添加 bash 包装器:
byobu-tmux split-window <opts> "<script>; byobu-tmux respawn-pane"
并使用显式的 bash 环境:
byobu-tmux split-window <opts> "bash -i -c \"<script>\""
这个问题演示如何保持窗格打开,但是有没有办法让创建窗格时执行的命令重新运行而不是关闭窗格?