我决定掸掉我的 Beaglebone Black Rev.C 上的灰尘,并想在做任何事情之前,我应该把所有东西都更新到最新。我使用新的 Debian 8.3 映像创建了一张 SD 卡并安装了它。没问题。
在我的 Windows 8.1 机器上使用 TeraTerm ssh 进入 BBB 一直以失败告终,我显然被 ssh 服务器启动了。啊。因此,我启动了一个 Kali Linux 虚拟机并从那里进行 ssh。几乎相同的。编辑/etc/ssh/ssh_config
并添加ServerAliveInterval 60
。仍然被掉落,但跑到apt-get update
完成而没有被掉落。接下来,我尝试了apt-get upgrade
,它嘎嘎地走了很长一段时间,然后把我掉了下来。
已经有一段时间了,LAN 上似乎没有流量表明apt-get upgrade
仍在执行任何操作,但/var/lib/dpkg/
已被锁定。该进程可能正在等待来自已蒸发的外壳的输入。
问题:
- 有没有办法礼貌地解决这个问题,或者我应该重新启动?
- 怎样才能阻止这种令人作呕的事情再次发生呢?我怎样才能确保我的 ssh 会话保持活动状态?
答案1
对我来说,这听起来像是您的升级重新启动了某种服务,从而断开了您的连接。或者,您只是松开连接,并且中间升级状态与系统发生冲突,导致需要重新启动。
通常我会认为网络管理器/接口已升级,并且发生了“服务网络重新启动”。
这里的问题是,当您的 ssh 会话关闭时,您在其中运行的程序/脚本/whatevs 也会关闭。这意味着,如果您运行 apt-get Upgrade,并且会话关闭,则升级会在 ssh 会话关闭的同时突然停止。
我建议在屏幕上运行升级(我认为这是可能的),或者将外部屏幕连接到 Beaglebone。
答案2
答案3
我怎样才能确保我的 ssh 会话保持活动状态?
在您的/etc/ssh/sshd_config
输入中ClientAliveInterval 60
,当然要重新启动 sshd 服务,这将防止您退出 SSH 会话。
答案4
screen
我建议您在 ssh 登录远程主机时始终使用。
$ ssh -t username@hostname screen -D -RR
如果您失去与 ssh 会话的连接,这没有问题,因为您可以再次运行相同的命令,然后您将返回到屏幕会话,而不会终止任何操作。
~/.ssh/config
如果您将以下设置放入或中/etc/ssh/ssh_config
,则ssh 会话保持活动时间不够长的问题应该可以解决:
ServerAliveInterval 60
ServerAliveCountMax 10