【问题标题】:tmux window exit when I exit prossess in tmux window当我在 tmux 窗口中退出进程时,tmux 窗口退出
【发布时间】:2013-06-06 08:35:35
【问题描述】:

如果我有一个像rails cguard 这样的进程,我使用exit 命令退出,tmux 窗口也会退出。

当我只想重新启动例如铁路控制台时,这不是很实用。

我可以在 tmux 中防止这种行为吗?

【问题讨论】:

    标签: tmux


    【解决方案1】:

    您可以设置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
    

    【讨论】:

    • 如果进程以返回码 != 0 退出,是否可以执行此操作 (remain-on-exit)?
    • @blueyed:remain-on-exit 代码均未测试退出状态,但您可以将其调整为命令的最后一步。要仅保留非零退出,您可以使用类似 neww 'zsh -l || tmux set -q remain-on-exit' if remain-on-exit` 在您的配置中通常处于关闭状态(如果它通常处于打开状态,则更改为 &&)来启动窗口。这仅适用于单窗格窗口,因为使用拆分窗格切换整个窗口的选项可能不是您想要的。
    • @ChrisJohnsen 感谢您的回答!那么使用vim-dispatch 可能是不可行的,它使用 tmux 窗格来启动后台进程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多