Linux

程序表限制

  • May 14, 2020

我想知道 linux OS 中的程序表是否有限制。能吃飽嗎?如果是這樣,我該怎麼做才能騰出空間(也許嘗試刪除殭屍程序的條目)?

執行sysctl kernel.pid_max kernel.threads-max以分別查看程序和執行緒的目前最大限制。(每個程序至少佔用一個執行緒;如果是多執行緒則更多。)

在面向桌面的發行版中,“出廠預設”程序限制可能是 32768,或者在面向企業的發行版中可能更高。在現代 64 位系統中,您可以使用/etc/sysctl.conf將限制增加到 4194304(至少)。

(核心版本 3.10.25 中的最大值為 4194304;從那時起它可能會進一步增加。)

你不能刪除殭屍程序,它們已經死了。你應該做的是**殺死邪惡的殭屍主程序,**即殭屍的父程序,因為殭屍的存在表明父程序沒有正常工作。一旦疏忽的父程序被殺死,殭屍將被程序#1收養,通常會立即清理它們。

父程序要麼在收到其子程序死亡通知時始終檢查其子程序的返回碼,要麼應安排子程序在啟動時被拒絕,因此程序#1(通常/sbin/init)可以採用他們。流程 #1 有特殊責任採用任何其他無父流程並處理他們的死亡通知。

引用自:https://unix.stackexchange.com/questions/586723