如何重新加入Ubuntu Server的“ do-release-upgrade”过程?


79

我在Ubuntu Server的do-release-upgrade过程中不小心按下了Ctrl + C。我放到shell来比较/ etc /中的.conf文件。当我按Ctrl-C时,它询问我是否要尝试重新附加到升级过程,但未成功。

因此我退出了,现在有一个挂起的dpkg进程,该进程正在按住apt锁。这是一台没有GUI前端的虚拟服务器。

是否可以恢复升级过程,或者我必须终止dpkg过程并重新启动?


2
屏幕-list是否仍列出升级过程?如果是这样,则屏幕-r可能会再次将其重新连接。尝试重新连接时,确切的错误是什么?
arjarj 2012年

我后来尝试过screen -RD,但是没有用。没有任何屏幕守护进程在运行,因此没有任何可重新连接的。确切的错误?我认为在类似诅咒的应用程序底部可以选择“ r”或“ q”(重新连接或退出)。抱歉,我没有其他帮助。我使用的是VirtualBox,并且没有运行tmux或屏幕会话,因此没有回滚,并且类似curses的界面仍在清除屏幕。重新连接无效,所以我退出了。
亚历克斯·里奇

1
我要补充一点,我也尝试screen -R -D既须藤用户和我的普通用户..
亚历克斯·里奇


2
是! dpkg configure -a是正确的答案。那件事发生在我身上,真正的坏事是没有正确设置bind9(即Ctrl-C必须停止了该过程,并且无法再启动!)一旦我修复了bind9,那么apt-get update + upgrade + dist -up升级就像一个魅力,然后我重新启动,一切都正常了。
亚历克西斯·威尔克

Answers:


113

我通常会通过VPN发布版本升级,因此我尝试了几次。每当它更新我的openvpn软件包时,我都会失去连接,因此之后我会重新连接。

do-release-upgrade在端口1022和备份屏幕会话上启动备份SSH会话。如果您没有安装屏幕,则将不可用。

您可以通过运行以下命令获取屏幕会话:

sudo screen -list
There is a screen on:
    2953.ubuntu-release-upgrade-screen-window   (09/13/2012 04:48:02 AM)    (Detached)
1 Socket in /var/run/screen/S-root.

然后重新附加:

sudo screen -d -r root/2953.ubuntu-release-upgrade-screen-window

之后使用先前列出的屏幕 root/

您应该回到失去连接的地方。


1
我没有安装屏幕...我无法使用apt-get(文件锁定)安装一个
inemanja

这非常有帮助。如果您只添加了简短的提示,do-release-upgrade实际上确实会自动启动一次屏幕会话,那么这可能是一个更好的答案(您让我重新阅读了一下问题,以查找是否有通过提及开始升级过程的任何提示screen
polynomial_donut,

1
我很惊讶这个问题不断增加+1太老了
Alex R

@AlexR它仍然是relevan,今天才救了我!Stack *网站的魔力!
Luis Lobo Borobia

29

升级到定量时,我遇到了同样的问题。对我来说不幸的是,就像原始海报一样,屏幕也因为ctrl + c而被杀死。

杀死dpkg并使用“ --configure -a”重新启动它即可解决该问题。

谢谢


谢谢你,谢谢你,谢谢你。这对我有用。
firebush

2

我本人更像是一个CentOS / RHEL的人,但是根据我的经验,您总是比杀死和重新开始过程更好。下载,同步等应该已经完成​​,无需重做。因为那是花费大多数时间的原因,所以走这条路线应该不会有太多的损失。


是的,我认为别无他法。我可能已经使用过reptyr来重新连接到pty / tty(我不知道区别),但是从头开始更容易。而且你是对的;第二轮更快!
亚历克斯·利奇
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.