Làm cho ulimits hoạt động với start-stop-daemon


20

Tôi có một init.dkịch bản bắt đầu một ứng dụng bằng cách sử dụng start-stop-daemon --chuid SOME_SYSTEM_USER. Đó là, ứng dụng chạy dưới một người dùng khác, không phải root.

Vấn đề là, ứng dụng cần các cài đặt giới hạn đặc biệt (cụ thể ulimit -n 64000), mà tôi đã đặt limits.conf. Điều này hoạt động khá độc đáo khi tôi chạy nó trực tiếp từ shell: su - SOME_SYSTEM_USER+ start app từ shell.

Nhưng khi chạy qua start-stop-daemon --chuidtừ /etc/init.d, những giới hạn này bị bỏ qua. Sau đó, ứng dụng không hoạt động, rõ ràng.

Làm thế nào để tôi buộc start-stop-daemonphải tôn vinh các ulimitthiết lập?


Debian Bóp, 2.6.32-5-686 # 1 SMP Thứ bảy ngày 5 tháng 5 01:33:08 UTC 2012 i686 GNU / Linux

Câu trả lời:


23

Tại thời điểm này, bạn không thể. limits.conf(5)là cấu hình cho pam_limits(8), được kích hoạt bởi ngăn xếp PAM theo cấu hình trong /etc/pam.d. Tuy nhiên, start-stop-daemon(8)như được khởi chạy từ tập lệnh init.d không đi qua ngăn xếp PAM, vì vậy những loại cài đặt đó không bao giờ được áp dụng.

Lỗi Debian # 302079 chứa một bản vá để cho phép cài đặt giới hạn từ start-stop-daemon(8), nhưng lỗi đã được mở từ năm 2005 và bản vá chưa được hợp nhất.

Mặc dù không lý tưởng, AFAIK cách được đề xuất để thực hiện việc này ngay bây giờ là thêm một ulimitcuộc gọi trong tập lệnh init.d của bạn.


Chỉ cần thêm các ulimitthiết lập ngay trước start-stop-daemonlệnh. (tức là ulimit -n 64000) ... cho những người thiếu hiểu biết như tôi.
Ryan Schumacher

Nếu, không giống như OP, bạn không biết daemon nào bị sập, tôi mới nhận được kết quả tốt trên Debian Wheezy khởi động lại daemon sau: echo "ulimit -c Unlimited" | sudo tee /lib/lsb/init-fifts.d/core-limit
Martin Dorey

Một số thông tin cơ bản có giá trị hơn có thể được tìm thấy ở đây: serverfault.com/a/642082/22394
sehe

7

Bạn cũng có thể sử dụng lệnh 'giới hạn' trong tập lệnh khởi động.

Trong tệp /etc/init/foo.conf, thêm dòng:

limit nofile 64000 64000

64000 đầu tiên là giới hạn mềm và thứ hai là giới hạn cứng.

Bạn có thể tìm thêm thông tin ở đây: http://upstart.ubfox.com/cookbook/

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.