Pat*_*ryk 3 shell command pane tmux
我想像这样创建窗格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"
Run Code Online (Sandbox Code Playgroud)
以这种方式运行,当我取消在窗格(窗口)中运行的命令时,我立即关闭它.如何避免这种行为?
使用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
Run Code Online (Sandbox Code Playgroud)
当您终止命令时,窗口将保留,并且[窗格]将标记为"窗格已死".要重新启动相同的命令,请发出respawn-window.要在窗口中启动新命令(例如,交互式bash会话),请发出问题respawn-window bash.
respawn-window(并且respawn-pane,我忘记但可以用来定位窗口内的单个窗格)也可以-k选择一个选项,可以用来杀死窗口中正在运行的任何内容,然后重新启动命令或启动新命令.你可以添加一些你.tmux.conf喜欢
bind-key C-c respawn-pane -k bash
Run Code Online (Sandbox Code Playgroud)
然后,在任何活动窗格中,您可以键入Control-C以终止窗格中正在运行的任何内容,并将其替换为交互式shell(remain-on-exit在这种情况下不需要,因为您要立即用新命令替换旧命令) .