通常我通过 ssh 连接升级我的 Ubuntu 安装。有时这个 ssh 连接会丢失,或者我会不小心关闭终端窗口。
ssh 重新登录计算机后可以检查升级状态吗?
答案1
以下日志与 apt 升级相关:
/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log
如果命令是dist-upgrade
,则有附加日志:
/var/log/dist-upgrade
仅供参考,通常情况下,重新运行升级是安全的,并且 apt 将在进程因断开连接而终止时继续执行。但是...
GNU Screen 入门:
当通过 ssh 连接到远程服务器并在前台启动长时间运行的进程时,最好使用 GNU Screen。Screen 提供了一个虚拟终端,即使您的 ssh 连接丢失,它仍会继续运行。
安装屏幕:
sudo apt-get install screen
运行屏幕:
screen
运行 screen 后,您将获得与普通终端一样的命令行提示符。然后您可以从 screen 内部运行升级:
sudo apt-get upgrade
要了解其工作原理,请按“分离”屏幕Ctrl+a、d。这将返回到非屏幕终端。您可以使用以下命令查看正在运行的屏幕列表
screen -list
如果只有一个屏幕正在运行,则可以使用以下命令重新连接它:
screen -raAd
(如果屏幕连接在其他地方,这将分离它,并将其重新连接到您当前正在运行的终端。)
通常,如果没有额外的设置,您无法在屏幕内“正常”滚动。要在屏幕内滚动,请按Ctrl-Esc进入光标模式。然后您可以使用杰和钾。 按Esc键再次退出光标模式。
网络上还有更多资源可用于附加屏幕功能。它是系统管理的宝贵标准工具。
也可以看看:
答案2
/var/log/apt/term.log
当我的终端被其他人关闭时,我正在升级(询问我是否保留或替换配置文件;此信息是我从中获取的)。重新启动时apt upgrade
,提示锁定文件被保留。
我的解决方法是执行以下操作:
sudo killall apt # to release the lock
sudo dpkg --configure -a # to fix the interrupted upgrade
sudo apt upgrade # to make sure no packages are left not upgraded
答案3
要查看后台作业的实时输出apt
,请使用:
sudo tail -f /var/log/apt/term.log
答案4
遇到了完全相同的问题,失去了连接,dpkg 进程正在等待输入。
也许下次尝试:sudo dpkg --configure -a