摆脱废弃的 SSH 进程

摆脱废弃的 SSH 进程

我有一台 Linux 机器dropbear作为 SSH 服务器运行。我从客户端向该计算机打开许多 SSH 会话,同时这些会话处于活动状态,我从服务器计算机的 DCN 端口拔出以太网电缆,因此无法再通过 SSH 访问服务器。但是之前在服务器上创建的 SSH 进程一直在系统中徘徊并出现在ps命令等中(导致内存泄漏),直到我重新启动计算机。有没有办法在与上述相同的情况下自动清理它们并摆脱这些进程,而无需重新启动?

答案1

这可能对其他人有用:我通过在 dropbear 的启动脚本中添加 -K SECONDS 标志来解决这个问题。这样,经过三次尝试(大约 1 分钟)后,dropbear 就会放弃该已死亡的连接,因此它将终止服务器端的关联进程。请参阅此处了解更多信息:dropbear 手册页

答案2

两种选择:

  • 只需杀死这些进程即可。如果您有他们的 PID,只需使用该kill程序(您可能需要以 root 身份运行)来结束它们。
  • 由于您刚刚拔掉了电缆,因此这些进程不再从连接的远程端接收任何数据。一段时间后,他们会注意到这一点并自行死亡。这需要多长时间取决于一些可配置的参数,但默认情况下大约是两个小时

相关内容