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。我曾經遇到類似的問題,系統重新啟動後就自動解決了!

相關內容