ulimit 是一個用于控制 shell 進程及其子進程資源使用的命令。在 Ubuntu 系統中,ulimit 可以用來限制進程的資源使用,例如文件描述符數量、進程數、CPU 時間等。這對于防止惡意程序或錯誤配置的程序消耗過多資源,從而影響系統穩定性非常有幫助。
ulimit 的作用主要體現在以下幾個方面:
文件描述符限制:ulimit 可以限制一個進程可以打開的文件描述符數量。文件描述符是操作系統用于表示打開文件的一種抽象概念,每個進程都有一定數量的文件描述符可用。當達到限制時,進程將無法打開更多文件。
進程數限制:ulimit 可以限制一個用戶或一個 shell 會話可以創建的最大進程數。這有助于防止系統因為過多的進程而耗盡資源。
CPU 時間限制:ulimit 可以限制一個進程可以使用的最大 CPU 時間。當進程超過這個時間限制時,它將被終止。這有助于防止單個進程占用過多的 CPU 資源,影響其他進程的運行。
內存使用限制:ulimit 可以限制一個進程可以使用的最大內存(包括虛擬內存和物理內存)。當進程超過這個限制時,它將被終止。這有助于防止內存泄漏或其他內存管理問題導致的系統崩潰。
要查看當前的 ulimit 設置,可以在終端中運行 ulimit -a 命令。要臨時更改 ulimit 設置,可以使用 ulimit 命令后跟相應的選項和值,例如 ulimit -n 4096 將文件描述符限制更改為 4096。
需要注意的是,ulimit 設置僅對當前 shell 會話及其子進程有效。要永久更改 ulimit 設置,需要修改系統配置文件(例如 /etc/security/limits.conf)。