【发布时间】:2013-06-06 08:35:35
【问题描述】:
如果我有一个像rails c 或guard 这样的进程,我使用exit 命令退出,tmux 窗口也会退出。
当我只想重新启动例如铁路控制台时,这不是很实用。
我可以在 tmux 中防止这种行为吗?
【问题讨论】:
标签: tmux
如果我有一个像rails c 或guard 这样的进程,我使用exit 命令退出,tmux 窗口也会退出。
当我只想重新启动例如铁路控制台时,这不是很实用。
我可以在 tmux 中防止这种行为吗?
【问题讨论】:
标签: tmux
您可以设置remain-on-exit 窗口选项以防止tmux 在运行它的进程结束时关闭窗口(窗格)。
setw remain-on-exit on
会话选项set-remain-on-exit 也可用;有了它,您可以安排会话的所有窗口/窗格自动打开remain-on-exit。
在remain-on-exit 窗格的进程结束后,窗格将显示消息“窗格已死”,直到使用命令kill-pane(或kill-window)将其关闭,或使用@987654329 在那里启动新命令@(或respawn-window)。
respawn-pane 'rails c' # respawn with a specific command
respawn-pane # respawn whatever the previous command
如果您不太担心完全退出窗格的现有进程,那么您甚至可以在不首先退出当前进程的情况下重新启动窗格,如下所示:
respawn-pane -k # kill current process (if any) and respawn the previous command
【讨论】:
remain-on-exit)?
remain-on-exit 代码均未测试退出状态,但您可以将其调整为命令的最后一步。要仅保留非零退出,您可以使用类似 neww 'zsh -l || tmux set -q remain-on-exit' if remain-on-exit` 在您的配置中通常处于关闭状态(如果它通常处于打开状态,则更改为 &&)来启动窗口。这仅适用于单窗格窗口,因为使用拆分窗格切换整个窗口的选项可能不是您想要的。