gpt4 book ai didi

tmux - 如何在不同环境下启动两个 tmux session ?

转载 作者:行者123 更新时间:2023-12-04 01:56:09 26 4
gpt4 key购买 nike

这样做的天真方法行不通。尝试这个:

启动第一个 tmux session 。

$ export ENVIRONMENT="production"
$ tmux

然后您可以在 session 内验证 ENVIRONMENTproduction
然后,在第二个终端中启动另一个 session
$ export ENVIRONMENT="staging"
$ tmux

出人意料的是这届 ENVIRONMENT也是 production !这是非常不直观的!

这里发生了什么?
我怎样才能做到这一点?我喜欢 session 中的所有窗口“继承”环境变量。

最佳答案

“最简单”的解决方案是创建一个新的 tmux不同环境的服务器。

$ ENVIRONMENT=production tmux -L prod-tmux


$ ENVIRONMENT=staging tmux -L staging-tmux

你总是需要指定哪个套接字, prod-tmuxstaging-tmux , 在您重新连接到现有 session 时使用。

下一个解决方案是使用一台服务器,但修改该服务器中每个 session 的环境。就像是
$ tmux new-session -d -s production
$ tmux new-session -d -s staging
$ tmux set-environment -t production ENVIRONMENT production
$ tmux set-environment -t staging ENVIRONMENT staging

请注意 ENVIRONMENT不会在每个 session 的初始窗口中运行的进程中设置,但将为创建的任何后续窗口设置。 (除非服务器在第一次启动时继承了 ENVIRONMENT。)

当您运行时 tmux ,它首先查找现有服务器(默认服务器,或由 -L-S 选项指定的服务器)。如果没有服务器,则启动一个,服务器的环境继承自当前环境。

如果有服务器, tmux简单地请求服务器执行 tmux 命令(默认情况下, new-session ,或由 tmux 的参数指定的任何命令)命令,然后退出。 tmux的环境命令本身并不相关,除非所请求的命令被记录为从中读取(参见 set-environment )。

服务器管理一组窗口,每个窗口代表一个由服务器创建的进程(不是 tmux 命令本身)。 session 只是一组逻辑窗口,也由服务器管理。

关于tmux - 如何在不同环境下启动两个 tmux session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50506708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com