3
如果我有一个像rails c
或guard
这样的进程退出时,tmux窗口也退出。当我退出tmux窗口中的prossess时,tmux窗口退出
当我只想重启例如导轨控制台时,这不太实际。
我可以在tmux中防止这种行为吗?
如果我有一个像rails c
或guard
这样的进程退出时,tmux窗口也退出。当我退出tmux窗口中的prossess时,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
)关闭,或者一个新的命令与respawn-pane
(或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
伟大的答案!谢谢! –
如果进程退出并返回代码!= 0,是否可以执行此操作('退出时保留')? – blueyed
@blueyed:“退出时剩余”代码没有测试退出状态,但可以将其作为命令的最后一步进行调整。只有非零出口仍然可以用'neww'zsh -l ||之类的东西来启动窗口tmux set -q“保持退出”,如果'keep-on-exit'通常在您的配置中关闭(如果它通常打开,则更改为'&&')。这只会对单窗格实际起作用,不过因为有一个分割窗格切换整个窗口的选项可能不是您想要的。 –