ulimit PICKLE: "অপারেশন অনুমোদিত নয়" এবং "কমান্ড পাওয়া যায় না"


15

আমি বর্তমান ব্যবহারকারীর জন্য উন্মুক্ত ফাইলের সর্বাধিক সংখ্যা বাড়ানোর চেষ্টা করছি

> ulimit -n
1024

আমি নিম্নলিখিত হিসাবে বাড়াতে এবং ব্যর্থ করার চেষ্টা করি

> ulimit -n 4096
bash: ulimit: open files: cannot modify limit: Operation not permitted

তাই আমি প্রাকৃতিক জিনিসটি করি এবং সাময়িক অনুমতি নিয়ে চালানোর চেষ্টা করি, তবে ব্যর্থ

> sudo ulimit -n 4096
sudo: ulimit: command not found

প্রশ্নাবলি

  1. কীভাবে বাড়বে উলিমিত?
  2. ইহা কি জন্য ঘটিতেছে?

ফেডোরা 14 ব্যবহার করা


মুছে ফেলা মন্তব্যটিতে প্রতিক্রিয়া: ulimit 4096কাজ করে না। আমি -nসঠিক মনে করি । ধারণার প্রমাণ হিসাবে এটি প্রথমে যদি কাজ করে তবে sudo su - root(তবে কেবল মূলের জন্য পরিবর্তন হয়)।
প্যাসলি


উত্তর:


17

ulimitএটি একটি শেল অন্তর্নির্মিত, বাহ্যিক আদেশ নয়। এটি তৈরি করা দরকার কারণ এটি শেল প্রক্রিয়া নিজেই কাজ করে, যেমন cd: সীমাগুলি, বর্তমান ডিরেক্টরির মতো এটিও সেই নির্দিষ্ট প্রক্রিয়ার সম্পত্তি property

sudo bash -c 'ulimit -n 4096'কাজ করবে, তবে এটি কেবলমাত্র অনুরোধ করা বাশ প্রক্রিয়াটির সীমা পরিবর্তন করবে sudo, যা আপনাকে সাহায্য করবে না।

প্রতিটি সীমা জন্য দুটি মান আছে: হার্ড সীমা এবং নরম সীমা। শুধুমাত্র রুট শক্ত সীমা বাড়িয়ে তুলতে পারে; যে কেউ হার্ড সীমাটি হ্রাস করতে পারে এবং নরম সীমাটি কেবলমাত্র সীমাবদ্ধতার সাথে উভয় দিকেই সংশোধন করা যেতে পারে যে এটি হার্ড সীমাটির চেয়ে বেশি হতে পারে না। নরম সীমাটি হ'ল প্রকৃত মান।

সুতরাং আপনার ব্যবস্থা করতে হবে যে আপনার সমস্ত প্রক্রিয়াগুলির কমপক্ষে 4096 ফাইলের খোলার জন্য সীমাবদ্ধতা রয়েছে You আপনি নরম সীমাটি 1024 এ রাখতে পারেন that এই প্রক্রিয়াটি চালু করার আগে অনেক ফাইলের প্রয়োজন হয়, নরম সীমাটি বাড়ানো উচিত। ইন /etc/security/limits.conf, লাইন যুক্ত করুন

paislee hard nofile 4096
paislee soft nofile 1024

paisleeআপনি নিজের প্রক্রিয়াটি চালাতে চান এমন ব্যবহারকারীর নাম কোথায় । শেলটি যে প্রক্রিয়াটি প্রবর্তন করে যার জন্য আপনি একটি উচ্চতর সীমা চান, চালান

ulimit -Sn unlimited

শক্ত সীমাতে নরম সীমা বাড়াতে।


1
বিকল্প থেকে sudo bash -cহয় sudo -iযা লগ-ইন শেল শুরু sudo -swhcih শেল শুরু হয়। একই সীমাবদ্ধতা প্রয়োগ হয় তবে এটি অন্যান্য পরিস্থিতিতে কার্যকর হতে পারে।
ব্রাম

ধন্যবাদ। আমি কি কিছু সম্পর্কিত প্রশ্ন জিজ্ঞাসা করতে পারি? অন্যান্য উত্তর এবং পোস্ট stackoverflow.com/a/17483998/156458 এবং unix.stackexchange.com/a/238413/674 এবং unix.stackexchange.com/a/169035/674 সব ব্যবহার করা বাঞ্ছনীয় sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"। তবে উভয় ulimit -c 1024এবং exec su $LOGNAME" শুধুমাত্র দ্বারা নির্মিত শেলকে প্রভাবিত করে sudo, সুতরাং আদেশটির উদ্দেশ্য কী? exec su $LOGNAME"পরিবর্তিত সীমাটি ব্যবহার করতে অর্থবহ কিছু করে না। আমি খুব বিভ্রান্ত হয়ে পড়েছি এবং আমি যদি কিছু মিস করছি তবে ভাবছি।
টিম

দয়া করে নোট করুন যে ulimit -Sn unlimitedবেশিরভাগ শেলগুলিতে কাজ করে না। সঠিক পদ্ধতিটি কল করা ulimit -aএবং তারপরে কল করা ulimit -n <number>যেখানে <সংখ্যাটি হার্ড সীমা (ডান কলাম)।
সুস্পষ্টভাবে

3

ফাইলটি খুলুন /etc/security/limits.confএবং লাইনটি যুক্ত করুন <user> soft nofile <value>ulimitরুট ব্যবহারকারী পরিবর্তন ব্যবহার করার জন্য এবং একই চেষ্টা করুন।

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