Câu trả lời:
Lệnh ulimit là một lệnh tích hợp sử dụng các hàm C được mô tả bởi con người: Trợ giúp riêng của nó được bao gồm trong trang man Bash, có thể truy cập được man bash
.
Bạn có thể liệt kê tất cả các tùy chọn khả dụng với ulimit -h
và xem ý nghĩa tương ứng của chúng bằng cách ulimit -a
liệt kê tất cả các loại giới hạn có sẵn và giá trị hiện tại của chúng, tùy thuộc vào hệ thống của bạn:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 16382
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
ulimit
phải là một shell được tích hợp sẵn vì giới hạn mà nó thiết lập áp dụng cho chính shell cũng như các chương trình mà nó khởi động. Đối số di động duy nhất là -f
(giới hạn kích thước tệp, theo đơn vị 512 byte). Hầu hết các shell có nhiều tùy chọn hơn, bạn sẽ cần kiểm tra tài liệu shell để biết chính xác chúng là gì. Với các shell di động như bash và ksh, một số biến thể unix có thể không hỗ trợ giới hạn ngay cả khi tùy chọn tương ứng được shell nhận ra.
Các tùy chọn được hỗ trợ bởi mọi shell tôi đã thấy:
-H
: Kết hợp với các tùy chọn khác để chỉ đặt hoặc hiển thị giới hạn cứng.-S
: Kết hợp với các tùy chọn khác để chỉ đặt hoặc hiển thị giới hạn mềm.-c
: kích thước tệp lõi tối đa (khối 512 byte)-d
: kích thước heap tối đa (phân đoạn dữ liệu) (kB)-f
: kích thước tệp tối đa (khối 512 byte)-n
: số lượng mô tả tập tin tối đa-s
: kích thước ngăn xếp tối đa (kB)-t
: thời gian CPU tối đaMột vài lựa chọn rất phổ biến khác:
-a
: Hiển thị tất cả các giới hạn.-m
: kích thước bộ nhớ vật lý tối đa (kB)-v
: kích thước bộ nhớ ảo tối đa (kB)
ulimit -h
không được hỗ trợ ở mọi nơi - ít nhất là trong Bash 4.2.25.