ขนาดไฟล์หลักที่มี ulimit


12

คำถามของฉันอาจไม่เกี่ยวข้องกับ Ubuntu โดยเฉพาะ แต่เนื่องจากเดสก์ท็อปของฉันที่ใช้ระบบปฏิบัติการนี้ฉันจึงมาที่ฟอรัมนี้

ฉันกำลังพยายามเปลี่ยนขนาดไฟล์คอร์โดยใช้ulimit -cคำสั่งดังนี้:

$ 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

การเปลี่ยนข้อ จำกัด :

$ ulimit -c unlimited

การสังเกตผลลัพธ์:

$ 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

แน่นอนมีการเปลี่ยนแปลงขีด จำกัด อย่างไรก็ตามเมื่อฉันเปิดเทอร์มินัลอื่นและตรวจสอบค่าฉันยังคงเห็นค่าเป็นศูนย์ในขนาดไฟล์หลัก

คำถาม:

  1. การเปลี่ยนแปลงที่ทำโดยใช้ulimitคำสั่งส่งผลกระทบต่อกระบวนการปัจจุบันเท่านั้นbashหรือไม่ในกรณีนี้คือ
  2. ฉันเปิดโปรแกรมจากเชลล์เป็นกระบวนการที่อยู่เบื้องหน้าหรือพื้นหลัง การulimitเปลี่ยนแปลงใช้กับกระบวนการใหม่หรือไม่
  3. ฉันจะทำให้กระบวนการผู้ใช้ทั้งหมดได้รับผลกระทบจากการกำหนดค่านี้ได้อย่างไร

1
คุณค้นหาก่อนถามหรือไม่ serverfault.com/questions/637212/increasing-ulimit-on-centos
kenn

คำตอบ:


10

ulimit เป็นเชลล์ในตัวและมีผลกับเชลล์ปัจจุบันเท่านั้นและกระบวนการที่เริ่มต้นโดยเชลล์นั้น:

$ type ulimit
ulimit is a shell builtin

จาก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.

ดังนั้นใช่กระบวนการลูกได้รับผลกระทบ

หากต้องการกำหนดขีด จำกัด อย่างถาวรหรือสำหรับกระบวนการทั้งหมดให้แก้ไข/etc/security/limits.confและรีบูต ตัวอย่างใน manpage ค่อนข้างดี คุณเพียงแค่ต้องเพิ่มสิ่งที่ชอบ:

username - core unlimited

ขอบคุณ โดยmanpages.ubuntu.com/manpages/bionic/man1/ulimit.1posix.html , คือulimitยังมีคำสั่งภายนอกนอกเหนือจากการทุบตีในตัวคำสั่ง?
ทิม

@Tim การอ้างถึงหน้าเว็บที่คุณเชื่อมโยง: "เนื่องจาก ulimit ส่งผลกระทบต่อสภาพแวดล้อมการเรียกใช้เชลล์ในปัจจุบันจึงมีการจัดให้เป็นเชลล์ในตัวปกติเสมอ"
muru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.