ম্যাক ওএস এক্স 10.6 এ উলিমিট নিয়ে অদ্ভুত আচরণ


8

Ulimit সঙ্গে কাজ যখন আমি কিছু খুব অদ্ভুত আচরণ পেতে। আমি শুধু একটি নতুন শেল খুলুন

Hector:~ robertj$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited 
open files                      (-n) 256 
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 532
virtual memory          (kbytes, -v) unlimited

ঠিক আছে, সেটাই ডিফল্ট বলে মনে হয় এমনকি আপনি সেট করেছেন /etc/launchd.conf মধ্যে ফাইলগুলির সীমাটি অলমাইট হতে পারে। কিন্তু যে অন্য দিন আরেকটি প্রশ্ন।

এখন আমি ফাইলের সংখ্যা 1024 তে বাড়িয়ে দিচ্ছি এবং আবার নতুন সেটিংস দেখতে চাই।

 Hector:~ robertj$ ulimit -n 1024
 Hector:~ robertj$ ulimit -a | grep open
 open files                      (-n) 1024

ঠিক আছে, যে কাজ করে। কুল! এখন আবার সেটিংস পরিবর্তন করতে দেয়

Hector:~ robertj$ ulimit -n 512
Hector:~ robertj$ ulimit -a | grep open
open files                      (-n) 512

আবার যে সূক্ষ্মভাবে সূক্ষ্ম কাজ করে। আবার কিছু উচ্চ মান পরিবর্তন করুন

Hector:~ robertj$ ulimit -n 1024
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Hector:~ robertj$ 

কি এখন f *** এই?

আমি যদি এই sudo চেষ্টা করি আমি একটি ত্রুটি পাবেন না কিন্তু মান পরিবর্তন হয় না।

Hector:~ robertj$ sudo ulimit -n 1024
Password:
Hector:~ robertj$ ulimit -a | grep open
open files                      (-n) 512
Hector:~ robertj$ 

এখানে কি হচ্ছে?

আমি সম্পূর্ণরূপে stumped করছি!

কোন সাহায্য ব্যাপকভাবে প্রশংসা করা হয়...

Robertj

উত্তর:


18

আপনি বিভ্রান্তিকর দুটি জিনিস আছে। প্রথম প্রতিটি সম্পদ জন্য হার্ড এবং নরম সীমা উভয় আছে। ulimit -n 512 সেট উভয় তাদের, কিন্তু ulimit -a শুধুমাত্র নরম সীমা দেখায়। একবার হার্ড সীমা সেট করা হয়, এটি শুধুমাত্র হ্রাস করা যেতে পারে।

$ ulimit -n
256
$ ulimit -Hn  # There's no initial hard limit
unlimited
$ ulimit -n 512  # This sets both the hard and soft limits
$ ulimit -n
512
$ ulimit -Hn
512
$ ulimit -n 1024  # Once set, the hard limit cannot be increased
-bash: ulimit: open files: cannot modify limit: Operation not permitted

দ্বিতীয় জিনিস যে বিভ্রান্তিকর আপনি যে হয় sudo ulimit আপনি এটা মনে করেন কি না। এটি একটি (রুট) উপ-প্রসেস spawns, খোলা ফাইল সীমা সেট করে যে subprocess জন্য , এবং তারপর subprocess প্রস্থান। সীমা একটি প্রতি-প্রক্রিয়া সেটিংস, তাই তাদের একটি পরিবর্তন sudo'ing কিছু দরকারী কাজ করে না।


হাই গর্ডন, মহান ব্যাখ্যা জন্য ধন্যবাদ। দুঃখের বিষয় আমি এখনও আপনার উত্তর আপত্তিকর করতে পারেন না - কিন্তু এটি অনেক সাহায্য!

তাই যদি একটি হার্ড সীমা সেট করা হয়, কিভাবে আমরা হার্ড সীমা বৃদ্ধি করতে পারি?
greg

@greg: আমি মনে করি না আপনি এটি করতে পারেন - এটিই এটি একটি কঠিন সীমা তৈরি করে। কিছু অপারেটিং সিস্টেমগুলিতে, রুট অন্যান্য প্রসেসগুলিতে হার্ড সীমা বাড়াতে পারে, তবে আমি মনে করি না যে এটি OS X তেও সম্ভব।
Gordon Davisson

ধন্যবাদ। আমি ঘটনাক্রমে আমার সিস্টেম অব্যবহারযোগ্য প্রশংসনীয় যা খুব কম সেট আপ। একটি রিবুট এটা ঠিক করলো।
greg
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.