服务器升级过程中SSH连接丢失 – 如何重新连接到进程?

所以,我正在执行从11.04到11.10的Ubuntu服务器升级。

我忘了在后台,我的SSH客户端超时断开 (Windows上的腻子,去图)。 在我的terminal上的最后一件事是关于保持一个旧的configuration等问题。

当我重新login到服务器时,aptitude文件被另一个进程locking,所以我认为这个升级过程就在那里等待我的input。

我如何与这个过程互动并继续升级? 如果可能的话。

谢谢

该过程实际上以root用户身份在屏幕或byobu会话中运行。 用端口22上的putty或者故障安全1022重新连接到服务器上。sudo su – 或者su – 进入你的root帐户并且用byobu或者屏幕恢复屏幕-r并且继续你离开的地方。

哦,是的,我发现了困难的方式;-)

你不能。 通过这样做来find升级过程

 lsof /var/lib/dpkg/lock 

杀死它,修复任何中断的升级

 dpkg --configure --pending 

并重新启动升级。

除非目前的“一个进程,而不是一个进程树”在这种情况下是一个问题,否则cryopid (通过这个问题find)可能会有所帮助。

这些文件可能被locking,因为这个过程被毫无意义地杀死,并没有得到清理自己的机会,所以确认aptitude其实还在运行。 使用lsof /var/lib/dpkg/lock在Teddy的回答中提示检查 – 这会告诉你也尝试使用cryopid的pid。

在将来,我build议尝试通过尽可能的屏幕。 我已经习惯了屏幕(或byobu,这是一个定义一些有用的行为的屏幕的包装)是我在SSH到任何地方时运行的第一件事情,然后我可以重新连接,如果有问题。 你可以设置它自动启动或重新连接,但是我从来没有做过这样的事情 – 如果你想尝试的话,在线上有很多例子( 比如这个例子 )。