kích thước tập tin lõi với ulimit


12

Câu hỏi của tôi có lẽ không liên quan đến Ubuntu, nhưng vì máy tính để bàn của tôi chạy HĐH này, tôi đã đến diễn đàn này.

Tôi đang cố gắng thay đổi kích thước tệp lõi bằng ulimit -clệnh như sau:

$ 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) 7959
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) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Thay đổi giới hạn:

$ ulimit -c unlimited

Quan sát kết quả:

$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7959
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) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Thật vậy, giới hạn được thay đổi. Tuy nhiên, khi tôi mở một thiết bị đầu cuối khác và kiểm tra giá trị, tôi vẫn thấy giá trị 0 trong kích thước tệp lõi.

Câu hỏi:

  1. Là những thay đổi được thực hiện bằng cách sử dụng ulimitlệnh chỉ ảnh hưởng đến quá trình hiện tại, tức là trong trường hợp này bash?
  2. Tôi khởi chạy một chương trình từ shell như một quá trình trước hoặc sau. Có ulimitthay đổi áp dụng cho quá trình mới?
  3. Làm thế nào tôi có thể làm cho tất cả các quy trình người dùng bị ảnh hưởng với cấu hình này?

1
Bạn đã tìm kiếm nó trước khi hỏi? serverfault.com/questions/637212/increasing-ulimit-on-centos
kenn

Câu trả lời:


10

ulimit là một phần mềm dựng sẵn và do đó chỉ ảnh hưởng đến trình bao hiện tại và các quy trình được bắt đầu bởi trình bao đó:

$ type ulimit
ulimit is a shell builtin

Từ man ulimit:

The  ulimit  utility  shall  set  or report the file-size writing limit
imposed on files written by the shell and its child processes (files of
any  size  may be read). Only a process with appropriate privileges can
increase the limit.

Vì vậy, có, quá trình con bị ảnh hưởng.

Để đặt giới hạn vĩnh viễn hoặc cho tất cả các quy trình, hãy chỉnh sửa /etc/security/limits.confvà khởi động lại. Các ví dụ trong trang này khá tốt. Bạn chỉ cần thêm một cái gì đó như:

username - core unlimited

Cảm ơn. Bởi manpages.ubfox.com/manpages/bionic/man1/ulimit.1poseix.html , Đây ulimitcũng là một lệnh bên ngoài ngoài việc là một lệnh bash dựng sẵn?
Tim

@Tim trích dẫn trang bạn đã liên kết đến: "Vì ulimit ảnh hưởng đến môi trường thực thi shell hiện tại, nên nó luôn được cung cấp dưới dạng shell được tích hợp thường xuyên."
muru
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.