bash - 在 bash 脚本中使用调试程序分离 tmux session

标签 bash session scripting tmux

我有一个要运行的脚本,我将在其中启动两个在单独的 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 test1tmux 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/

相关文章:

windows - Bash on Ubuntu on Windows 启动参数

internet-explorer - Zend Framework - Internet Explorer - phpsessid cookie 问题

php - 从另一个 php 文件访问 SESSION 变量

shell - "ls: not found"运行后 "read PATH"

bash - 变量引用是否应该在算术 for 循环(算术上下文)中以 $ 为前缀?

linux - 如何使用 bash 确保 user & pass 在 curl 中是正确的

linux - 当程序锁定终端时,如何使用屏幕运行多个程序实例?

以全局变量为数据源的 PHP session 副作用警告

java - 使用 java 脚本 API 查找和销毁不良/恶意 java 脚本代码

Bash 历史重新运行 : possible command to avoid using ! bang!?