今天我通过内置控制台远程更新我的 Proxmox,但中途忘了自己在干什么,直接把标签页关掉了。
结果就是我没法再连上去了:软件包已经在后台更新,而升级过程弹出了一个是否替换文件的问题,正在等我输入。
所以我虽然能 SSH 进去,却什么也做不了,因为它还在一个我连不上的控制台上等待输入,而那个界面根本打不开。
四处查了一下之后,我偶然发现了一个 Serverfault 帖子,里面提到可以用 reptyr 通过 SSH 接管终端会话。
这里记录一下具体做了什么,以便把会话拿回来并完成升级:
来自这条评论:
git clone https://github.com/nelhage/reptyr
cd reptyr
make install这样就在机器上安装好了 reptyr。
然后我用 ps ax | grep pts 查找所有打开的会话,找到我要的那个进程。
接着我在调用树中找到分配了 pts 的最顶层父进程,并通过它的 PID 附加上去:
reptyr -T 1390511然后我就能完成升级了!🎉