daemontools và ulimit


3

Tôi có một dịch vụ daemontools /service/myservice/run chứa đựng:

#!/bin/sh
exec setuidgid someuser somecommand

Bây giờ, nếu tôi chạy nó dưới dạng tập lệnh trực tiếp từ shell root, somecommand sẽ nhận được một ulimit chính xác (không giới hạn).

Tuy nhiên, khi tôi bắt đầu dịch vụ bằng

svc -u /service/myservice

sau đó somecommand không nhận được một ulimit hiệu quả một chút trên 11000.

Làm thế nào tôi có thể có ai đó nhận được ulimit chính xác ngay cả khi bắt đầu qua svc (không phải từ vỏ)?

Đây là trên phiên bản FreeBSD 9.

Câu trả lời:


2

Đặt ulimit bên trong daemontools kịch bản, ở trên exec svc không truyền bá các rlimits cho các kịch bản mà nó chạy:

#!/bin/sh
ulimit -n 102400 #Increase file descriptor limit to 102400
exec setuidgid someuser somecommand

3

Trên thực tế, đây là những gì mềm mại là cho.

Bạn nên thử:

exec setuidgid someuser softlimit -o 102400 somecommand

Xem: http://cr.yp.to/daemontools/softlimit.html

Lưu ý rằng -o kiểm soát các mô tả tệp mở cho softlimit, không giống như -n cho ulimit.

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.