You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让tmux会话在脚本执行完成后保持不关闭

如何让tmux会话在脚本执行完成后保持不关闭

这个问题我之前也碰到过!tmux默认在会话里的主命令结束后就会自动关闭会话,确实很头疼,尤其是想事后看日志的时候。给你几个实用的解决办法:

  • 修改启动命令,让脚本结束后保留shell
    你可以在启动tmux的时候,把脚本命令和一个交互式shell串联起来,这样脚本跑完后会自动进入shell,会话就不会关闭了。调整后的systemd命令应该是:
    systemd-run --scope --user tmux new-session -s mysession 'python your_script.py; exec bash'
    这里的exec bash会替换当前进程为bash,保持会话活跃。如果想用zsh或者其他shell,换成对应的命令就行。

  • 全局配置tmux,让所有窗口退出后保留
    如果你希望所有tmux窗口在命令结束后都不自动关闭,可以修改你的tmux配置文件(一般是~/.tmux.conf),添加一行:
    set-option -g remain-on-exit on
    保存后重启tmux或者在现有会话里按Ctrl+b :输入source ~/.tmux.conf生效。这样不管你在窗口里跑什么命令,结束后窗口都会保留,你随时可以attach回去看日志,甚至还能在这个窗口里重新执行命令。

  • 针对单个会话临时设置
    如果你不想全局修改,只想给当前这个会话设置,可以在启动tmux的时候加上选项:
    systemd-run --scope --user tmux new-session -o remain-on-exit on -s mysession 'python your_script.py'
    或者如果已经启动了会话,脚本还在运行,你可以按Ctrl+b :打开tmux命令行,输入:
    set-window-option remain-on-exit on
    回车确认,这样当前窗口在脚本结束后就不会关闭了。

备注:内容来源于stack exchange,提问作者sirjay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:14:35