আমরা হব..
$ ulimit -s
8192
$ sudo ulimit -s 16384
$ ulimit -s
8192
কেন এমন ulimit
বর্বর উপায়ে আমাকে অসম্মান করে ?
আমরা হব..
$ ulimit -s
8192
$ sudo ulimit -s 16384
$ ulimit -s
8192
কেন এমন ulimit
বর্বর উপায়ে আমাকে অসম্মান করে ?
উত্তর:
ulimit
শেল / প্রক্রিয়া নির্দিষ্ট। কর sudo
।
$ ulimit -s
8192
$ ulimit -s 16384
$ ulimit -s
16384
sudo
যখন পাস করার সময় ত্রুটি দেয় নি ulimit
; সাধারণত এটি একটি বাহ্যিক বাইনারি প্রয়োজন, কিন্তু ulimit
এটি শেল বিল্টিন।
which ulimit
। এটি সম্পর্কে বিস্ময়ের কিছু নেই।
ড্যানিয়েল বেকের উত্তর সমস্ত সত্যই বলে না (আসলে এটি হাতের মুদ্রা), এবং প্রকৃতপক্ষে "সুডো ওলিমিট" করার জন্য প্রয়োজনীয় লোকদের সহায়তা করে না।
সমস্যা হল যে
ড্যানিয়েলের উদাহরণ কেবলমাত্র একটি নির্দিষ্ট পরিস্থিতিতে কাজ করে (যা ভাগ্যক্রমে পূর্বনির্ধারিত একটি)।
Counterexample:
$ ulimit -s 8191 # set both hard and soft limits
$ ulimit -s # show current soft limit
8191
$ ulimit -s 16384 # set both hard and soft limits
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
সুতরাং, আপনি এর সাথে সীমাটি সেট করেছেন ulimit -s
এবং এটি গিয়ে নরম এবং কঠোর উভয় সীমাবদ্ধতা সেট করেছে। এখন আপনি এটি উচ্চতর স্থাপন থেকে অবরুদ্ধ।
এই মুহুর্তে আপনি চেষ্টা করার চেষ্টা করতে পারেন sudo
; কিন্তু ড্যানিয়েল যা লিখেছিলেন তা কার্যকর হবে না।
$ sudo ulimit -s 16384 # maybe with sudo?
$ ulimit -s
8191
$
এখানে যা ঘটেছিল তা হ'ল এটি sudo
একটি নতুন শেল শুরু করেছিল, যেখানে এটি দৌড়েছিল ulimit
; এবং সেই শেলটিতে নতুন উলামিট সেট করা হয়েছিল। তবে তারপরে সেই শেলটি তার কাজ শেষ করেছে, ছিন্নভিন্ন হয়ে গিয়েছিল এবং এখন আপনি আগের শেলটিতে আগের উলামিট দিয়ে ফিরে এসেছেন।
প্রমাণ:
$ ulimit -s 8191
$ ulimit -s
8191
$ sudo bash
# ulimit -s
8191
# ulimit -s 16384
# ulimit -s # It worked!
16384
# exit
exit
$ ulimit -s # ... but now we're back to the old ulimit.
8191
$
তাহলে ড্যানিয়েলের উদাহরণটি কেন ঠিক কাজ করেছিল? উলিমিতের ডিফল্ট শক্ত এবং নরম সীমাবদ্ধতার কারণে, তিনি নরম সীমাটিকে শক্ত সীমাতে ঠেলে দিতে পারেন। কৌশলটি দেখানোর জন্য আমরা এটি ধীর গতিতে করতে পারি:
$ ulimit -Ss # show the Soft limit
8192
$ ulimit -Hs # show the Hard limit
65532
$ ulimit -s # by default, shows the Soft limit
8192
$ ulimit -s 16384 # set both the Soft and Hard limit
$ ulimit -s # shows the Soft limit
16384
$ ulimit -Hs # but, gotcha! the Hard limit has also been set
16384
$ ulimit -s 16385 # so now we can't go higher
-bash: ulimit: stack size: cannot modify limit: Operation not permitted
$
সংক্ষিপ্তসার: আপনি যদি নিজের হার্ড সীমাটি সেট করেন এবং এটিকে ধাক্কা দিতে চান তবে আপনি সেই শেলের ভাগ্যের বাইরে চলে যাবেন ... ... যদি না আপনি সুপারভাইজার হিসাবে না থাকেন বা পরে সুযোগগুলি বাদ দেওয়ার জন্য কিছু জাল ব্যবহার করেন না।
cd
।