首页 > 解决方案 > 在 Ubuntu 中重新启动 tmux 会话(运行 Python)

问题描述

我的 Ubuntu 服务器上的 tmux 中有五个后台进程正在运行。每个窗格都是一个 Python 脚本,它是一个永无止境的 while 循环。

$ tmux ls
process1: 1 windows (created Fri Dec 14 10:12:40 2018) [143x31]
process2: 1 windows (created Fri Jan 11 10:23:55 2019) [128x30]
process3: 1 windows (created Sun Feb 10 13:30:03 2019) [143x33]
process4: 1 windows (created Tue Dec 18 22:41:50 2018) [145x33]
process5: 1 windows (created Mon Jan 14 15:42:04 2019) [143x33]

是否有停止和启动或重新启动所有服务的命令?而不是进入每一个并手动停止并重新启动它?

谢谢

标签: pythonubuntusshtmux

解决方案


最简单的方法可能涉及

bind-key * set-window-option synchronize-pane

此绑定(或您选择设置的任何其他键)将允许您键入<prefix>*以开始键入窗口中的所有窗格。(<prefix>*再次撤消此功能)

对于您的用例,要停止所有这些,您C-C可以通过按字面意思输入 Ctrl+C 发送到所有窗格。要重新启动所有进程,只需点击向上箭头以返回每个窗格的历史记录(或键入!!,如果您愿意),然后点击Enter重新启动它们。

这假定启动每个进程在每个窗格中使用相同数量的命令。

我已经检查过了,但我找不到让 tmux 窗格重新启动其当前进程的方法;tmux 似乎对它所显示的终端了解不够,无法获得更有弹性的答案。


推荐阅读