将 Enter 键传递到 dist-upgrade 的提示符,在远程计算机上的 GUI 终端内运行,此后只能通过 SSH 访问

将 Enter 键传递到 dist-upgrade 的提示符,在远程计算机上的 GUI 终端内运行,此后只能通过 SSH 访问

我之前通过 RDP 访问了一台remote机器(典型的物理台式电脑),用它启动了sudo apt dist-upgradeGUI 内部gnome-terminal。从那时起,我失去了 RDP 连接,只有 SSH[1]。由于 apt 命令中没有“假设是”,cat /var/log/dist-upgrade/screenlog.0通过 SSH 检查发现,仍在运行的升级卡在提示符上 [2],要求用户按 Enter 或选择 yes(然后按 Enter)。请注意,此时dist-upgrade已经运行了大约一个小时(不包括此后的等待)并且已经安装了很多软件包。

现在的目标是将 Enter 传递给正在运行的程序dist-upgrade(或完全终止升级,但这可能会损坏系统)。法学硕士建议使用gdb -p pid /usr/libexec/gnome-terminal-server后跟call (int)write(0, "\n", 1)pid 和可执行文件的获取位置ps -ex | grep terminal。然而,No symbol "write" in current context.从那时起,这是错误的No debugging symbols found in /usr/libexec/gnome-terminal-server)

另一种方法是使用xdotool生成程序化点击。唉,它尚未安装在远程上,而且由于更新正在运行,所以现在不可能安装它。所有程序都是如此 - 此时我们必须使用我们已有的东西(标准 bash),并且不能安装任何新东西。

该怎么办?


[1]:实际上是基于“remote:xrdp:SSHTunnel:Remmina:client”的 RDP 访问仍然工作正常,只是我们陷入黑屏并且显然无法唤醒遥控器的显示屏。

[2]:有问题的提示很简单

#tail /var/log/dist-upgrade/screenlog.0
Package configuration


Upgrade to the firefox snap  
                                                                                         
Starting in Ubuntu 22.04, all new releases of firefox are only available to Ubuntu users through the snap package. This package update will transition your system over to the snap by installing it.It is recommended to close all open firefox windows before proceeding to the upgrade.  

                        <-- 0:jammy -- time-stamp -- Apr/01/24 15:45:57 --          

答案1

我并不完全熟悉apt,但是该日志文件()的名称screenlog.0让我想知道该进程是否已经在screen?如果是这种情况,screen -ls应该显示一个活动会话,并且screen -R应该重新附加到它。

如果日志文件名是转移注意力的内容,您也许可以reptyr,这是一个允许您将现有程序附加到新终端的工具。

相关内容