Bạn luôn có thể thử thực hiện ulimit -n 2048
. Điều này sẽ chỉ đặt lại giới hạn cho vỏ hiện tại của bạn và số bạn chỉ định không được vượt quá giới hạn cứng
Mỗi hệ điều hành có thiết lập giới hạn cứng khác nhau trong tệp cấu hình. Ví dụ: giới hạn tệp mở cứng trên Solaris có thể được đặt khi khởi động từ/etc/system.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
Trên OS X, cùng một dữ liệu này phải được đặt trong /etc/sysctl.conf.
kern.maxfilesperproc=166384
kern.maxfiles=8192
Trong Linux, các cài đặt này thường có trong /etc/security/limits.conf.
Có hai loại giới hạn:
- mềm giới hạn chỉ đơn giản là các giới hạn hiện thi hành
- cứng giới hạn đánh dấu giá trị lớn nhất mà không thể vượt qua bằng cách thiết lập một giới hạn mềm
Giới hạn mềm có thể được đặt bởi bất kỳ người dùng nào trong khi giới hạn cứng chỉ có thể thay đổi được bằng gốc. Giới hạn là tài sản của quy trình. Chúng được kế thừa khi một tiến trình con được tạo nên các giới hạn trên toàn hệ thống sẽ được thiết lập trong khi khởi tạo hệ thống trong các kịch bản lệnh init và các giới hạn người dùng sẽ được đặt trong khi đăng nhập người dùng ví dụ bằng cách sử dụng pam_limits.
Thường có các giá trị mặc định được đặt khi máy khởi động. Vì vậy, mặc dù bạn có thể đặt lại ulimit của bạn trong một vỏ cá nhân, bạn có thể thấy rằng nó đặt lại về giá trị trước đó khi khởi động lại. Bạn có thể muốn grep script khởi động của bạn cho các lệnh ulimit tồn tại nếu bạn muốn thay đổi mặc định.
cũng xem: https: //unix.stackexchange.com/a/8949/231660 –