Trên Linux ít nhất, hầu hết các distro dường như sử dụng pam để xác thực. Một mô-đun đi kèm với pam là mô-đun giới hạn . Trích dẫn từ README cho pam_limits:
The pam_limits PAM module sets limits on the system resources that can be obtained in a user-session. Users of uid=0 are affected by this limits, too.
Do đó, bạn có thể đặt giới hạn cho mỗi người dùng, mỗi nhóm và giới hạn mặc định, trong cả hai loại cứng (gốc đặt điều này và quy trình không thể yêu cầu cao hơn) và giới hạn mềm. Các giới hạn mềm thường được đặt thấp hơn giới hạn cứng và ứng dụng có thể tăng nó lên cho đến khi đạt đến giới hạn cứng.
Trong trường hợp của bạn, nếu quy trình bạn muốn tăng giới hạn hoạt động như một người dùng thông thường, bạn có thể tăng giới hạn cho người dùng hoặc nhóm đó. Ví dụ, tôi có một số công việc cron mysql trên một số máy chủ yêu cầu xử lý tệp bổ sung được mở, vì vậy tôi đặt điều này:
$ cat /etc/security/limits.d/mysql.conf
@mysql soft nofile 100000
@mysql hard nofile 200000
Không có gì cần phải khởi động lại; Khi bạn kiện người dùng đó, bạn có thể thấy ngay rằng các giới hạn mới có hiệu lực.
Một điều khác mà bạn có thể làm nếu bạn đang sử dụng hệ thống dẫn xuất RedHat điển hình là đặt cuộc gọi ulimit mà bạn muốn vào tập lệnh / etc / sysconfig / $ SERVICE. Ví dụ, tập lệnh init của apache được đặt tên là /etc/init.d/httpd và nó cung cấp tệp cấu hình / etc / sysconfig / httpd nếu tìm thấy. Tôi đã thấy việc quản lý dễ dàng hơn bằng cách thực hiện việc này thay vì tự chỉnh sửa tập lệnh init vì tập lệnh init được cập nhật khi vòng tua được nâng cấp, nhưng tập tin sysconfig chỉ được cập nhật nếu chúng không được thay đổi so với mặc định.