在网站上读到这个问答:我能重新加入一个莫什会议吗?让我对mosh的用例感到好奇。
假设我在本地客户机上启动tmux,然后从mosh从tmux内部启动远程主机。从这个mosh会话中,我在远程机器上启动了一个长进程,例如,随着时间的推移将信息打印到stdout。
假设我在我的客户端上失去了连接,或者我重新启动了我的本地客户端(不管出于什么原因)。我是否能够(1)重新附加到本地tmux会话,(2)仍然可以看到我的mosh连接,(3)服务器进程仍在运行并在其中显示其输出?
发布于 2020-08-29 09:41:34
对,对,对。
tmux的好处之一/用途之一是允许会话的持久性,即使与会话断开连接也是如此--甚至在mosh出现之前也是如此。
tmux在断开连接时处理信号,会话中运行的进程继续运行,而不知道发生了断开(类似于通过nohup启动进程)。
那么,为什么上面会出现“是的,是的,是的”?
(1) re-attach to my local tmux session,是的,因为如果您与本地tmux会话断开连接,tmux将处理SIGHUP并继续运行,因此当您重新连接时可以使用tmux attach-session。
(2) still see my mosh connection alive, 是的,因为tmux处理了断开连接信号,在tmux中运行的mosh进程将继续不知道您的连接已经断开并将继续运行。
(3) still the server process running and displaying its output in it?是的,因为mosh仍然连接并运行服务器进程并发送输出。
https://unix.stackexchange.com/questions/176443
复制相似问题