SSH 登录和 /tmp 为 100%

SSH 登录和 /tmp 为 100%

不计算 root 保留的空间(通常为 5%),如果 /tmp 确实 100% 已满,则有 0 字节空闲,为什么我们不能通过 ssh 登录机器?我们只收到错误消息“无法分叉”。

ssh 客户端是否有任何参数,以便我们在 /tmp 达到 100% 完整的情况下仍然可以登录到计算机?

更新:重新启动并不是一个真正的选择:\

答案1

我不认为完整/tmp是问题所在。fork()仅当运行的进程过多时,系统调用才会因该特定错误而失败。

你有 ulimit 设置吗?

如果您无法访问控制台,那么您无能为力......

答案2

我见过 /tmp 由交换空间支持的情况......因此,如果您正在交换并且有大量 /tmp 活动,则很可能会耗尽交换空间,您会看到此消息。

如果内存不足,那么除了重新启动之外,您别无选择。内存杀手可能正在工作,但是,它会不加区别地杀死其中一些可能很重要的进程。

另一件事是一个(或多个)进程已填满进程表。如果没有更多可用插槽,您也可以收到该消息。您的解决方案是对导致该情况的进程进行搜索和销毁操作......假设您可以登录。如果您无法登录,那么重新启动是您唯一的选择。

最后,当然,机器软件或硬件可能存在严重问题。从而造成你所描述的情况。

答案3

在许多系统上,/tmp是一个驻留在 RAM 上的虚拟文件系统。根据您的配置方式,填满它可能会耗尽您所有的 RAM,并使您没有足够的内存来初始化新进程。

正如您可以想象的那样,这不是ssh事后可以解决的问题。但是您可以通过调整来防止它在将来发生,/tmp使其不会增长得这么大。

答案4

作为解决方法,请在重新启动后尝试 ssh。我曾经遇到过类似的问题,系统重启后就自动解决了!

相关内容