我通过 ssh 连接到我的服务器aptitude upgrade
并运行,在此过程中,我的互联网连接断开了。
重新连接后,aptitude upgrade 命令仍在运行:
$ ps aux | grep apt
root 15186 0.0 0.0 68996 2108 ? S 14:09 0:00 sudo aptitude upgrade
root 15187 3.9 1.4 262328 119080 ? Sl 14:09 0:17 aptitude upgrade
并且 dpkg 进程处于锁定状态。可能,该命令正在等待确认安装升级(常见的 Y/n 问题)。
我如何恢复进程控制以干净地完成命令?(再次“连接”到进程的标准输入以按“Y”)。
如果没有办法做到这一点,那么通过 PID 强制终止升级是否安全?
笔记:我知道reptyr
将任何进程带到前台,但由于我目前没有该包,所以这不是一个解决方案,因为我无法使用dpkg
或其衍生产品来安装新包,因为它处于阻止状态。
答案1
kill
通常情况下,运行命令是没问题的,如果只是在 Y/n 提示符下,而没有开始实际安装软件包,那么肯定没问题。最坏的情况是,您需要运行apt-get -f install
and/ordpkg --configure -a
几次。
答案2
首先,您必须配置可用的软件包sudo dpkg --configure -a
,然后尝试sudo apt-get autoremove
依赖关系,它可能会要求您首先修复软件包sudo apt --fix-broken install
,然后您可以删除不完整的下载软件包,sudo apt-get clean
现在您就可以使用或恢复升级sudo apt-get dist-upgrade --fix-missing
了sudo apt-get upgrade --fix-missing
。