ulimit के साथ कोर फ़ाइल का आकार


12

मेरा प्रश्न संभवतः उबंटू से संबंधित नहीं है, लेकिन जब से मेरा डेस्कटॉप इस ओएस को चला रहा है, मैं इस मंच पर आया हूं।

मैं 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और रिबूट करें। मैनपेज में उदाहरण काफी अच्छे हैं। आपको बस कुछ जोड़ना होगा:

username - core unlimited

धन्यवाद। Manpages.ubuntu.com/manpages/bionic/man1/ulimit.1posix.html द्वारा , ulimitबैश बिलिन कमांड होने के अलावा एक बाहरी कमांड भी है?
टिम

@ आपके द्वारा लिंक किए गए पृष्ठ को उद्धृत करते हुए: "चूंकि ulimit वर्तमान शेल निष्पादन वातावरण को प्रभावित करता है, इसलिए इसे हमेशा एक शेल नियमित अंतर्निहित के रूप में प्रदान किया जाता है।"
मूरू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.