Tôi có hai máy chủ CentOS 5 với thông số kỹ thuật gần như giống hệt nhau. Khi tôi đăng nhập và làm ulimit -u
, trên một máy tôi nhận được unlimited
, và trên máy khác tôi nhận được 77824
.
Khi tôi chạy một cron như:
* * * * * ulimit -u > ulimit.txt
Tôi nhận được kết quả tương tự ( unlimited
, 77824
).
Tôi đang cố gắng xác định nơi chúng được đặt để tôi có thể thay đổi chúng. Họ không được thiết lập trong bất kỳ hồ sơ của tôi ( .bashrc
, /etc/profile
, vv). Những điều này sẽ không ảnh hưởng đến cron nào) cũng như trong /etc/security/limits.conf
(trống rỗng).
Tôi đã lùng sục google và thậm chí còn đi xa để làm grep -Ir 77824 /
, nhưng cho đến nay vẫn chưa có gì. Tôi không hiểu làm thế nào những máy này có thể được cài sẵn với các giới hạn khác nhau.
Tôi thực sự tự hỏi không phải cho các máy này, mà là cho một máy khác (CentOS 6) có giới hạn 1024
, quá nhỏ. Tôi cần chạy các công việc định kỳ với giới hạn cao hơn và cách duy nhất tôi biết cách thiết lập công việc đó là trong chính công việc định kỳ. Điều đó ổn, nhưng tôi muốn thiết lập hệ thống rộng hơn để nó không bị hack.
Cảm ơn vì bất kì sự giúp đỡ. Điều này có vẻ như nó phải dễ dàng (KHÔNG).
EDIT - GIẢI QUYẾT
Ok, tôi đã tìm ra điều này. Có vẻ như đó là một vấn đề với CentOS 6 hoặc có lẽ là cấu hình máy của tôi. Trên cấu hình CentOS 5, tôi có thể thiết lập /etc/security/limits.conf
:
* - nproc unlimited
và điều đó sẽ cập nhật hiệu quả các tài khoản và giới hạn cron. Tuy nhiên, điều này không hoạt động trong hộp CentOS 6 của tôi. Thay vào đó, tôi phải làm:
myname1 - nproc unlimited
myname2 - nproc unlimited
...
Và mọi thứ hoạt động như mong đợi. Có thể đặc tả UID hoạt động, nhưng ký tự đại diện (*) chắc chắn KHÔNG CÓ ở đây. Điều kỳ lạ là các ký tự đại diện làm việc cho nofile
giới hạn.
Tôi vẫn rất muốn biết các giá trị mặc định thực sự đến từ đâu, bởi vì theo mặc định, tệp này trống và tôi không thể hiểu tại sao tôi có các giá trị mặc định khác nhau cho hai hộp CentOS, có phần cứng giống hệt nhau và từ cùng một nhà cung cấp .
/etc/security/limits.d/
không?