những thay đổi trong /etc/security/limits.conf có cần khởi động lại không?


144

Những thay đổi trong /etc/security/limits.confyêu cầu khởi động lại trước khi có hiệu lực?

Giống như nếu tôi có một tập lệnh đặt các giới hạn sau vào /etc/security/limits.conf, điều này có yêu cầu khởi động lại hệ thống trước khi các giới hạn đó có hiệu lực không?

* hard nofile 94000
* soft nofile 94000
* hard nproc 64000
* soft nproc 64000

2
đăng xuất là đủ
UVV

Chỉnh sửa tệp /etc/security/limits.d/90-nproc.conf và khởi động lại hệ thống của bạn

Câu trả lời:


108

Không nhưng bạn nên đóng tất cả các cửa sổ phiên hoạt động. Họ vẫn nhớ những giá trị cũ. Nói cách khác, đăng xuất và đăng nhập lại. Mỗi phiên mới từ xa hoặc vỏ bảo mật cục bộ có hiệu lực của các thay đổi giới hạn .


17
Điều gì xảy ra nếu tôi muốn đặt giới hạn cho người dùng không đăng nhập, như nếu tôi muốn đặt nofilegiới hạn 94000cho mongodbngười dùng? Làm thế nào tôi làm điều đó mà không cần khởi động lại? Tôi chỉ cần khởi động lại mongodbdịch vụ?
Alexej Magura

2
@AlexejMagura Bạn có thể sửa đổi các ưu điểm của các tiến trình đang chạy bằng prlimitlệnh.
Bratchley

7
@Gilles, cảm ơn vì sự thận trọng, tôi đã chỉnh sửa câu trả lời của mình để tránh sự mơ hồ. Tuy nhiên Bắt đầu một dịch vụ mới bằng cách sử dụng sudo service mongodb restartlà đủ để cho dịch vụ chạy với các giá trị giới hạn mới.
Slyx

6
nếu bạn đang sử dụng Ubuntu và mongodb được khởi động bằng cách khởi động, thì việc thay đổi các giới hạn này sẽ không ảnh hưởng đến mongodb. Vì upstartkhông đọc / etc / security config bug.launchpad.net/ubfox/+source/upstart/+orms/938669, bạn phải đặt limitstanza trong tệp cấu hình khởi động của nó.
HVNSweeting

5
Đó là một vấn đề khác. upstartbởi thiết kế bỏ qua các giới hạn đặt trong /etc/security/limits.conf.
Slyx

35

Áp dụng các thay đổi trực tiếp vào quy trình đang chạy nếu bạn đã cài đặt prlimit (đi kèm với produc-linux-2.21)

prlimit --pid <pid> --<limit>=<soft>:<hard>

ví dụ

prlimit --pid 12345 --nofile=1024:2048

Tham khảo tại đây


29

Để tạm thời đặt giới hạn tệp đang mở cho người dùng mà bạn hiện đang đăng nhập (ví dụ: 'root'): Bạn cũng có thể sử dụng ulimitlệnh để thay đổi các giá trị trong trình bao hiện tại của mình. Tuy nhiên, giới hạn cứng chỉ có thể được điều chỉnh xuống dưới trừ khi bạn root.

Thí dụ:

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 62449
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Để thay đổi nofilethành 94000, bạn có thể làm:

ulimit -n 94000

15

Các giới hạn được kế thừa từ một quy trình cha mẹ đến các quy trình con của nó. Các quy trình chạy như root có thể thay đổi giới hạn tùy ý; các quá trình khác không thể tăng giới hạn cứng. Do đó, giới hạn cứng được đặt bởi quy trình đăng nhập ảnh hưởng đến tất cả các quy trình trong phiên.

Nếu bạn thay đổi /etc/security/limits.conf, điều này sẽ ảnh hưởng đến tất cả các phiên mới, và các quy trình trong các phiên mới. Nó sẽ không ảnh hưởng đến các quy trình đang chạy, cũng như các quy trình được bắt đầu bởi các quy trình đang chạy.

Vì vậy, nếu bạn cần tăng một số giới hạn, bạn sẽ phải đăng xuất và đăng nhập lại hoặc bắt đầu một phiên khác (ví dụ: ssh localhosthoặc trên bảng điều khiển khác).


4

Để trích dẫn câu trả lời của @ Tombart

Những giới hạn này sẽ được áp dụng sau khi khởi động lại.

Nếu bạn muốn áp dụng các thay đổi mà không cần khởi động lại, hãy sửa đổi /etc/pam.d/common-sessionbằng cách thêm dòng này vào cuối tệp:

session required pam_limits.so
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.