在 Ubuntu 系統中,ulimit
是一個用于控制 shell 進程資源使用的命令行工具。ulimit
可以設置軟限制(soft limit)和硬限制(hard limit)。軟限制是可以由用戶自己調整的限制,而硬限制是系統管理員設置的最大限制,用戶無法超過這個限制。
要設置硬限制,你需要使用 ulimit
命令的 -H
選項來指定硬限制。以下是一些常見的資源類型和相應的 ulimit
命令示例:
文件大小(以字節為單位):
ulimit -Hf <size_in_bytes>
進程數:
ulimit -Hn <number_of_processes>
打開文件描述符的數量:
ulimit -Hn <number_of_open_files>
CPU 時間(以秒為單位):
ulimit -Ht <cpu_time_in_seconds>
內存大小(以千字節為單位):
ulimit -Hm <memory_size_in_kb>
堆棧大小(以千字節為單位):
ulimit -Hs <stack_size_in_kb>
核心文件大小(以塊為單位):
ulimit -Hc <core_file_size_in_blocks>
數據段大小(以千字節為單位):
ulimit -Hd <data_segment_size_in_kb>
最大用戶進程數:
ulimit -Hu <maximum_user_processes>
最大文件大小(以塊為單位):
ulimit -Hs <maximum_file_size_in_blocks>
請注意,這些設置通常只對當前 shell 會話有效。如果你希望永久更改這些限制,你需要編輯系統配置文件,例如 /etc/security/limits.conf
。
在 /etc/security/limits.conf
文件中,你可以添加如下行來設置硬限制:
* hard nofile <number_of_open_files>
* hard nproc <number_of_processes>
* hard memlock unlimited
這里的 *
表示所有用戶,你可以根據需要替換為特定的用戶名。nofile
控制打開文件描述符的數量,nproc
控制進程數,memlock
控制可鎖定的內存大小。
編輯完 /etc/security/limits.conf
文件后,你需要重新登錄或重啟系統以使更改生效。