我有一台 Linux 机器dropbear
作为 SSH 服务器运行。我从客户端向该计算机打开许多 SSH 会话,同时这些会话处于活动状态,我从服务器计算机的 DCN 端口拔出以太网电缆,因此无法再通过 SSH 访问服务器。但是之前在服务器上创建的 SSH 进程一直在系统中徘徊并出现在ps
命令等中(导致内存泄漏),直到我重新启动计算机。有没有办法在与上述相同的情况下自动清理它们并摆脱这些进程,而无需重新启动?
答案1
这可能对其他人有用:我通过在 dropbear 的启动脚本中添加 -K SECONDS 标志来解决这个问题。这样,经过三次尝试(大约 1 分钟)后,dropbear 就会放弃该已死亡的连接,因此它将终止服务器端的关联进程。请参阅此处了解更多信息:dropbear 手册页
答案2
两种选择:
- 你能只需杀死这些进程即可。如果您有他们的 PID,只需使用该
kill
程序(您可能需要以 root 身份运行)来结束它们。 - 由于您刚刚拔掉了电缆,因此这些进程不再从连接的远程端接收任何数据。一段时间后,他们会注意到这一点并自行死亡。这需要多长时间取决于一些可配置的参数,但默认情况下大约是两个小时