4

我想像这样创建窗格tmux

$ tmux new-session -d -s mysession "while true; do sleep 1; ls; done" 
$ tmux split-window -h "while true; do sleep 1; ls -l; done"

以这种方式运行它,当我取消在窗格(窗口)中运行的命令时,我会立即关闭它。如何避免这种行为?

4

1 回答 1

9

使用remain-on-exitwindow 选项将窗口(及其包含的任何窗格)标记为在其运行的命令退出后保留。

tmux new-session -d -s mysession "while true; do sleep 1; ls; done"
tmux set-option -t mysession:0 remain-on-exit

当您终止命令时,窗口将保留,并且 [窗格] 将标记为“窗格已死”。要重新启动相同的命令,请发出respawn-window. 要在窗口中启动新命令(例如交互式bash会话),请发出respawn-window bash.

respawn-window(和respawn-pane,我忘记了,但可以用来定位窗口中的单个窗格)也有一个-k选项,可以用来杀死窗口中正在运行的任何内容,然后重新启动命令或启动新命令。你可以添加一些你.tmux.conf喜欢的东西

bind-key C-c respawn-pane -k bash

然后,在任何活动窗格中,您可以键入 Control-C 以终止窗格中正在运行的任何内容并将其替换为交互式 shell(remain-on-exit在这种情况下不需要,因为您将立即用新命令替换旧命令) .

于 2014-02-26T15:14:52.807 回答