我有一个要运行的脚本,我将在其中启动两个在单独的 tmux session 中运行的程序。我现在的脚本差不多是:
!/bin/bash
tmux new -s test1 'mono --debug program1.exe'
tmux new -s test2 'python program2.py'
我遇到的问题是这 2 个程序在 Debug模式下运行,因此它们主动向 tmux session 输出信息。启动程序后,我无法控制在 tmux session 中键入任何内容。但是,我可以使用 Ctrl + b d
方法手动分离 session 。不过,我不确定如何在 bash 脚本中执行此操作。
我找到了 tmux detach
命令,但由于我不确定在程序启动和正在输出调试信息后如何输入 session ,所以我无法输入该命令。
我还发现一篇文章说有一个 -d
标志可以用于 tmux,它将启动一个分离的 session ,我希望我可以做一些像 tmux new - d test1 'mono --debug program1.exe'
但这似乎不起作用。它似乎在提示 -d
标志中的语法。
最佳答案
除了其他选项之外,您只需将 -d
标志添加到每个 new
命令。
#!/bin/bash
tmux new -d -s test1 'mono --debug program1.exe'
tmux new -d -s test2 'python program2.py'
请注意,您现在有两个 session ,您可以使用 tmux attach -s test1
或 tmux attach -s test2
附加其中之一。在相同 session 的单独窗口中运行每个命令可能更简单:
tmux new -d -s test1 'mono --debug program1.exe'
tmux new-window 'python program2.py'
tmux attach -t test1
将 new-window
替换为 split-window
以在同一窗口的不同 Pane 中运行命令。
关于bash - 在 bash 脚本中使用调试程序分离 tmux session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35973587/