我已连接到我的 aws debian wheezy 服务器,但在运行时apt-get upgrade
ssh 管道中断了。我没有使用screen
任何东西,所以我认为没有办法恢复该会话。
如果我重新连接新的 ssh 会话并运行ps aux | grep apt
,我可以看到apt
并且dpkg
是仍在运行
他们实际上已经跑了好几个小时了。我无法想象杀死这些进程是安全的,因为它们可能正在修改系统库/二进制文件,但我能做什么?如果他们正在等待键盘输入等怎么办?我最初要求我安装更新y
时说过,但我不知道是否需要进一步的用户输入。apt
我计划再等几个小时,dpkg
希望能完成他们正在做的事情……但如果没有任何反应,我有什么选择?
答案1
您无法重新获得会话。所以你无法做任何事情来与这个过程交互。
我不认为该进程正在运行。我想这apt-get
可能已经成为僵尸目前为止。无论如何,您可以使用ps
或检查进程top
。如果它正在运行,则放开并监视它以完成。如果它保持闲置状态,就杀死它。
然后你可以简单地运行apt-get upgrade
再次终止进程后,完成或修复会话崩溃时正在升级的任何包。
答案2
SIGINT
我认为向他们发送一个(键盘中断,即Ctrl+C)信号就可以了:
killall -SIGINT apt-get
或者
killall -2 apt-get
您也可以尝试做两次或更多次
答案3
答案4
这帮助我在未来做得更好:使用“屏幕”
这篇 Debian 帖子帮助我解决了我的严重问题:
https://wiki.debian.org/Teams/Dpkg/FAQ
sudo fuser -vki -TERM /var/lib/dpkg/lock /var/lib/dpkg/lock-frontend
sudo dpkg --configure --pending