【问题标题】:Tmux pane closes unintentionally after script finishes脚本完成后 Tmux 窗格意外关闭
【发布时间】:2023-03-15 08:46:01
【问题描述】:

????

我有一个长时间运行的脚本(几天),我在两个环境(staging + prod)上运行。这些执行中的每一个都会在日志中产生大约 3MB 的输出,并随着时间的推移打印到屏幕上。

我在 tmux 中运行这些,拆分我的窗格,以便屏幕的一半是暂存的,另一半是刺激的。然后我运行脚本,每天早上检查,然后突然只剩下一个分裂。我检查了我发送到文件的日志,并且在窗格中运行的、消失的脚本确实完成了。

我一开始以为是前几天晚上不小心关闭了它,但后来我重复了这个过程两次,每次都发生完全相同的事情。我现在正在寻求帮助来解决这个问题:)

到目前为止我的想法:

  • 如果在其中运行的进程需要很长时间(几天),tmux 是否会关闭窗格?
  • 日志是否包含任何可以关闭窗格的转义字符?
  • 窗格是否因为某个时间点打印的日志过多而崩溃?

请注意,此脚本没有进行“主动” tmux 交互或类似的操作,因此它没有调用任何 tmux 命令。

【问题讨论】:

    标签: tmux


    【解决方案1】:

    脚本是窗格中唯一运行的东西,还是您从 shell 中运行的?如果是前者,或者如果您使用“exec”从 shell 运行它,则该窗格将在脚本完成时关闭。

    其他可能性是某些东西杀死了父 shell,或者 shell 有 TMOUT 或类似的设置。或者当然是你不小心关闭了它或其他脚本关闭了它(可能是通过混合窗格 ID 或其他方式)。

    尝试在窗口中设置保持退出选项,当其中运行的程序退出时,tmux 不会关闭窗格,它会告诉你程序是正常退出还是有信号退出。

    【讨论】:

    • 感谢 TMOUT 标志,我会调查的。没有运行任何 tmux 交互的脚本,因此不能混淆窗格 ID 左右。我从 bash 运行它,./run.sh | tee logs.txt
    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2015-12-12
    • 1970-01-01
    相关资源
    最近更新 更多