Mối quan hệ giữa `launchctl giới hạn` và` ulimit` là gì?


11

Không có bất kỳ cấu hình ulimit nào trong các tập tin khởi động hệ thống / tập lệnh khởi động shell.

ulimit -a trình diễn:

-u: processes                       1064
-n: file descriptors                256

launchctl limit trình diễn:

maxproc     2048           2048           
maxfiles    2048           2048

Tôi mơ hồ nhớ rằng các giới hạn của launchctl phải phù hợp với đầu ra ulimit của shell, tôi có thể sai.

Có bất kỳ mối quan hệ giữa giới hạn của lauchctl và ulimit?


Bạn không nhận được câu trả lời thỏa đáng từ trang man của lệnh?
Andrew U.

@AndrewU. trang hướng dẫn launchctl không đề cập đến giới hạn, trang hướng dẫn ulimit không đề cập đến launchctl hoặc launchd.
Howard

Câu trả lời:


10

Trong shell, ulimit cung cấp "quyền kiểm soát các tài nguyên có sẵn cho shell và các quy trình được bắt đầu bởi nó" (xem man bash). Do đó, nó chỉ áp dụng cho vỏ và con của nó. Các giới hạn cho launchd có liên quan đến nó và các quy trình mà nó quản lý. Hai là riêng biệt.

Các chương trình riêng lẻ có thể đặt giới hạn tài nguyên của riêng mình bằng cách gọi các thường trình Thư viện C tiêu chuẩn ulimit()hoặc getrlimit()setrlimit(). Một số giới hạn tài nguyên nhất định không thể được nâng lên trừ khi quá trình đang chạy với tư cách là siêu người dùng.

Như một ví dụ thực tế, tôi gỡ lỗi các dự án phần mềm lớn và giới hạn mặc định của shell cho số lượng tệp mở không đủ lớn. Trong tệp .bashrc của tôi, tôi có các mục sau:

# Increase the upper limit on the number of open files:
ulimit -n 1024

Bây giờ trình gỡ lỗi của tôi sẽ không phàn nàn rằng nó không thể mở tất cả các tệp mà nó cần. Rõ ràng, điều này sẽ không có tác động đến launchd.


1
Để giải thích về điều đó: cài đặt ulimit mặc định được lấy từ launchctl limit; mặc dù người dùng có thể thay đổi số ulimit, tuy nhiên chúng có thể không vượt quá launchctl limitgiới hạn cứng.
Howard

điều này sẽ được thiết lập lại khi khởi động lại
kỹ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.