如何使用 Supervisord 管理 tmux 会话?

如何使用 Supervisord 管理 tmux 会话?

我想要镜像大约 15 个不同服务器的数据,这些服务器不定期但持续地提供我需要的文件。

为此,我创建了一个 tmux conf,它打开 15 个 tmux 窗口,其中的 shell 运行 wget 或其他程序,以循环方式进行单独下载(因此它们进行轮询)。

我希望能够连接到 tmux 来查看下载进度或调试它们。此外,我希望能够同时启动、重新启动和停止下载器+tmux。

不幸的是,我只能使用 Supervisor 3.0。我能以某种方式配置 tmux-server 以在退出时关闭所有窗口或类似操作吗?

答案1

tmux kill-session将终止特定的 tmux 会话和所有子进程,但保持 tmux 服务器运行。

kill-session
         [-a] [-t target-session] Destroy the given session, closing any
         windows linked to it and no other sessions, and detaching all
         clients attached to it.  If -a is given, all sessions but the
         specified one is killed.

tmux kill-server将对该 tmux 服务器上的所有会话执行上述操作,然后终止 tmux 服务器本身。

kill-server
         Kill the tmux server and clients and destroy all sessions.

您可能还需要设置一个包装脚本来启动和停止 tmux,而不是让主管直接执行此操作。请参阅 Stack Overflow 上的此答案

相关内容