Câu trả lời:
Trên các nhân mới hơn (2.6.32+) trên CentOS / RHEL, bạn có thể thay đổi điều này trong thời gian chạy với / Proc / <pid> / giới hạn:
cd /proc/7671/
[root@host 7671]# cat limits | grep nice
Max nice priority 0 0
[root@host 7671]# echo -n "Max nice priority=5:6" > limits
[root@host 7671]# cat limits | grep nice
Max nice priority 5 6
Như tài liệu ở đây , prlimit
lệnh, được giới thiệu với produc-linux 2.21 cho phép bạn đọc và thay đổi giới hạn của các quy trình đang chạy.
Đây là phần tiếp theo của phần ghi /proc/<pid>/limits
, không được tích hợp trong kernel dòng chính. Giải pháp này nên hoạt động.
Nếu bạn chưa có prlimit(1)
, bạn có thể tìm mã theo phiên bản tối giản trong prlimit(2)
trang chủ .
Trên phiên bản mới hơn của linux-linux-ng, bạn có thể sử dụng lệnh prlimit, để biết thêm thông tin, hãy đọc liên kết này https://superuser.com/questions/404239/setting-ulimit-on-a-rasty- Process
Bạn có thể thử ulimit man ulimit
với tùy chọn -n tuy nhiên trang mag không hầu hết các hệ điều hành không cho phép cài đặt này.
Bạn có thể đặt giới hạn mô tả tệp trên toàn hệ thống bằng cách sử dụng sysctl -w fs.file-max=N
và thực hiện các thay đổi liên tục để khởi động trong/etc/sysctl.conf
Tuy nhiên tôi cũng đề nghị xem xét quá trình để xem liệu nó có thực sự cần phải mở quá nhiều tệp tại một thời điểm nhất định hay không và trên thực tế bạn có thể đóng một số tệp xuống và hiệu quả hơn trong quy trình.
ulimit
không áp dụng cài đặt cho các quy trình đang chạy .