সিস্কিটল ডিফল্ট মানগুলি সন্ধান করবেন? (রিবুট ছাড়াই)


10

আমি এর net.core.rmem_maxসাথে এর মানটি পরিবর্তন করেছি sysctlএবং এখন আমি এটিকে তার ডিফল্ট মানটিতে আবার সেট করতে চাই।

যদি আমি পুনরায় বুট করি, net.core.rmem_maxতবে এটির ডিফল্ট মানটিতে ফিরে যাবে (কারণ এটি এতে ওভাররাইড করা হয়নি /etc/sysctl.conf) তবে আমি কি পুনরায় বুট না করে এই মানটি জানতে পারি?

আদর্শভাবে আমার sysctl net.core.rmem_maxমানটি সংশোধন করার আগে পড়তে হবে, তবে আমি ভুলে গিয়েছিলাম ...

উত্তর:


4

এটি সাধারণভাবে সম্ভব নয়: কার্নেলটি মূল মানগুলি ধরে রাখে না (কমপক্ষে লিনাক্সের অধীনে এটি হয় না এবং এটি অন্যান্য ইউনিক্স রূপগুলির ক্ষেত্রেও সত্য)। সেটিংয়ের মান একটি ভেরিয়েবলে সঞ্চয় করা হয়; আপনি যখন সেটিংস পরিবর্তন করেন, ভেরিয়েবলযুক্ত মেমরিটি অপরিবর্তনীয়ভাবে আপডেট হয়।

বেশিরভাগ সেটিংসের জন্য, ভেরিয়েবলের প্রাথমিক মান হ'ল একটি ধ্রুবক যা সংকলন সময়ে নির্ধারিত হয় এবং কার্নেল বাইনারিতে সঞ্চিত হয়। সুতরাং, আপনি নীতিগতভাবে ডিফল্ট মান সন্ধান করতে আপনার কার্নেল বাইনারি পরিদর্শন করতে পারেন। আপনার আগ্রহী সেটিংটি অনুসারে আপনাকে প্রতীকটি সনাক্ত করতে হবে এবং কার্নেল বাইনারিতে সেই চিহ্নের ঠিকানাটি অনুসরণ করতে হবে। ভার্চুয়াল মেশিনে আপনার কার্নেল বুট করা কম কাজ হবে।

বেশিরভাগ সেটিংসের জন্য, আপনি কার্নেল উত্স - kernel/sysctl.cএবং অন্যান্য ফাইলগুলিতে সন্ধান করতে পারেন । আপনি সংজ্ঞা দেখতে পাবেন

    {
            .procname       = "rmem_max",
            .data           = &sysctl_rmem_max,
            …
    },

(ইন net/core/sysctl_net_core.c), যা থেকে আপনি sysctl_rmem_maxভেরিয়েবলের আরম্ভকরণটি ট্রেস করতে পারেন । যদিও এটি একটি ধ্রুবক থেকে শুরু করা হয়েছে, সি কোডটি প্রসারিত করতে বেশ খানিকটা সময় নেয়।


0

আমার ওপেনবিএসডি মেশিনে, /etc/sysctl.conf ডিফল্ট সিস্টেস্টাল মানগুলির একটি গোছা তালিকাবদ্ধ করে, তবে এই তালিকাটি সম্পূর্ণ নয়।

সম্ভবত সর্বোত্তম উপায় হ'ল সাইক্লিট কোডটি পড়া বা এমন কোনও বন্ধুকে জিজ্ঞাসা করা যিনি তার মানগুলির জন্য একই ওএস চালাচ্ছেন :)

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