আমি কীভাবে কোনও ব্যবহারকারীকে কোনও প্রক্রিয়াটিকে নেতিবাচক কৌতূহলকে প্রাধান্য দিতে দিতে পারি?


12

আমি চাই যে কোনও ব্যবহারকারী একটি নেতিবাচক সুন্দর মান সহ সিস্টেমটিতে একটি নির্দিষ্ট প্রক্রিয়া চালাবেন। আমি নির্দিষ্ট প্রক্রিয়াটিকে ব্যাকগ্রাউন্ডে ছাঁটাই করতে পারি না কারণ এই নির্দিষ্ট প্রোগ্রামটি একটি মাইনক্রাফ্ট সার্ভার এবং সার্ভারটি নিয়ন্ত্রণ করতে আমি কমান্ড লাইনে নির্ভর করি।

আমার বর্তমান বাশ স্ক্রিপ্টটি (গুরুত্বপূর্ণ অংশ) এর মতো দেখাচ্ছে:

sleep 10 && \
sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \
java -Xmx8G -Xms2G -jar minecraft_server.jar nogui    

sleepকার্যকরভাবে কার্যকর করতে বিলম্ব করে renice। ব্যবহারকারীদের নিজস্ব আইডি ব্যবহার করে reniceনিজেই psজাভা প্রক্রিয়া যাচাই করতে ব্যবহার করে। বিভিন্ন ব্যবহারকারীর অধীনে জাভা স্প্যান করার অন্যান্য উদাহরণ থাকতে পারে তবে মাইনক্রাফ্ট সার্ভারটি তার নিজস্ব ব্যবহারকারী মাইনক্রাফ্টের অধীনে চলে ।

আমি যখনই সার্ভারটি শুরু করি তখন অবশ্যই আমি একটি পাসওয়ার্ড প্রবেশ করতে চাই না।
থেকে , / etc / sudoers :

minecraft ALL = NOPASSWD: /etc/renice

এটি করার জন্য আরও কি মার্জিত উপায় আছে? সহজভাবে ব্যবহার niceকরা কোনও বিকল্প নয়, NOPASSWD এরsudo nice bash সাথে একত্রে: বিকল্পটি একটি দুর্দান্ত সুরক্ষা সমস্যা হবে।

উত্তর:


9

Pam_limits.so মডিউল আপনাকে সেখানে সহায়তা করতে পারে।

এটি আপনাকে নির্দিষ্ট স্বতন্ত্র ব্যবহারকারী এবং গোষ্ঠী বা ওয়াইল্ডকার্ড বা ব্যবহারকারী এবং গোষ্ঠীর ব্যাপ্তির নির্দিষ্ট সীমা নির্ধারণ করতে দেয় allows

আপনি যে সীমা নির্ধারণ করতে পারেন তা হ'ল সাধারণত সেটিংগুলি বাতিল করা তবে সমবর্তী লগইন সেশন, প্রক্রিয়াগুলি, সিপিইউ সময়, ডিফল্ট অগ্রাধিকার এবং সর্বাধিক অগ্রাধিকার (রেনিস) এর সংখ্যার উপরও। আরও জন্য সীমাবদ্ধতা কনফিগার পৃষ্ঠা দেখুন।

উদাহরণস্বরূপ আপনি বর্ধিত ডিফল্ট অগ্রাধিকারের সাথে তাদের সমস্ত প্রক্রিয়া শুরু করার জন্য আপনার মাইন্ডক্র্যাফ্ট গ্রুপটি কনফিগার করতে পারেন এবং আপনি কেবল তাদের অগ্রাধিকার হ্রাস করার পরিবর্তে ম্যানুয়ালি তাদের গুরুত্বপূর্ণ কাজের অগ্রাধিকার বাড়ানোর জন্য সুন্দর এবং রাইনিস কমান্ডগুলি ব্যবহার করার অনুমতি দিতে পারেন।

# /etc/security/limits.conf
# increase default and max prio for members of the mindcraft group
@mindcraft   hard priority -10
@mindcraft   hard nice     -18   

4
কেবলমাত্র হার্ড সীমা নির্ধারণের জন্য niceএটি মনে হয় না, ব্যবহার করে আমাকে উভয়ই সেট করতে হয়েছিল -
বার্ন

উবুন্টু 16.04-এ আমার জন্য মোটেও কাজ করে বলে মনে হচ্ছে না। আমি priority-10 এবং nice-15 এ স্থির হয়েছি এবং আমি যখনই কোনও কিছুর উপর "সুন্দর -n -2" ব্যবহার করার চেষ্টা করি তখনও আমি সর্বদা "অনুমতি অস্বীকৃত" পাই। আমাকে কি পুনরায় বুট করতে হবে? আমি এই পরামর্শ অনুসারে সবেমাত্র লগ আউট করেছি এবং আবার প্রবেশ করেছি ।
রিচার্ড ওয়াইজম্যান

আমার পূর্ববর্তী পোস্টে আপডেট করুন ... রিবুট করার পরে আমি আবিষ্কার করেছি যে priorityসেটিংসটির কার্যকারিতা রয়েছে, তবে niceসেটিংটি আমাকে অগ্রাধিকার হ্রাস করতে দেয়। আমি যখন ডিফল্ট অগ্রাধিকার দিয়ে কিছু শুরু করি তখন এটি এখন -10। আমি reniceপ্রক্রিয়াটি -9 এ করতে পারি তবে তারপরে renice-10 এ ফিরে আসতে পারি না ।
রিচার্ড ওয়াইজম্যান

আপডেট 2: আমি এটি কাজ করেছি! এটি ব্যবহার করে hardযা সমস্যার সৃষ্টি করে। আমি পরিবর্তে এটি পরিবর্তন করেছি -এবং এখন সমস্ত কাজ ঠিক আছে। এই উত্তরটি আমাকে এর নীচে যেতে সহায়তা করেছে। আমি মনে করি যে সমস্যাটি ছিল আমার একটি নরম সীমা ছিল যা পথে পাচ্ছিল, সম্ভবত কোনওভাবে হার্ড সীমাটি ওভাররাইড করে। যাইহোক, -পরিবর্তে hardআমার জন্য এটি স্থির।
রিচার্ড ওয়াইজম্যান

1

reniceছাড়া ব্যবহার sudoকরা অসম্ভব হবে। আমি renice(1)ম্যান পৃষ্ঠা থেকে উদ্ধৃতি :

সুপার-ব্যবহারকারী ব্যতীত অন্য ব্যবহারকারীরা কেবল তাদের মালিকানাধীন প্রক্রিয়াগুলির অগ্রাধিকার পরিবর্তন করতে পারেন এবং কেবলমাত্র সুন্দর উত্সের সীমা না থাকলে কেবলমাত্র তাদের `` চমৎকার মান '' (সুরক্ষার কারণে) পিআরও_ম্যাক্স (20) এর মধ্যে সীমাবদ্ধ করতে পারবেন সেট (লিনাক্স 2.6.12 এবং উচ্চতর)।

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