2016-06-02 সম্পাদনা করুন
আপনি যদি সাধারণভাবে "আপস্টার্ট লগ বার্তাগুলি" সন্ধান করার চেষ্টা করছেন তবে চেক করুন /var/log/upstart/। এটিই আপস্টার্ট সংরক্ষণ করে stdoutএবং stderrআপস্টার্ট পরিষেবাগুলি থেকে। এটি নির্দেশ করার জন্য লিওপ্ডের উত্তরের জন্য ধন্যবাদ।
আপনি যদি আপস্টার্ট থেকে নিজেই লগ বার্তাগুলি সন্ধান করছেন, যেগুলি কনফিগার করে initctl log-priorityএবং দ্বারা নির্গত হয় initctl emit, পড়ুন!
সংক্ষিপ্ত সংস্করণ
লগ এন্ট্রিগুলি আসলে ডেমেসে প্রদর্শিত হবে। যে সত্ত্বেও, তারা না না ডিফল্টরূপে প্রদর্শিত /var/log।
আপনি যদি এগুলিতেও চান /var/logতবে $KLogPermitNonKernelFacility onrsyslogd এর কনফিগারেশনে যুক্ত করুন। আমি /etc/rsyslog.d/60-custom.confসম্পাদনা এড়ানোর মতো একটি কাস্টম ফাইল তৈরি করার পরামর্শ দিচ্ছি /etc/rsyslog.conf, কারণ এটি ডিপি কেজি দ্বারা পরিচালিত হয়। /var/log/syslogআপনি একবার আপস্টার্ট এর বাছাই log-priorityকরে একবার আপস্টার্ট বার্তাগুলি প্রদর্শিত হবে info।
দীর্ঘ সংস্করণ
এটি ট্র্যাক ডাউন করতে আমার বেশ কয়েকদিন সময় লেগেছে, তবে আপাতদৃষ্টিতে আপস্টার্ট (1.5) সিসলোগে লগ করে না , এটি গ্লিবসি ফাংশনটিকে কল করে না syslog()। পরিবর্তে, আপস্টার্ট কর্নেল রিং বাফারে লগ করে, যা ডেমেসগ পড়ে reads এখন, আমি মনে করি নি যে ব্যবহারকারীর স্পেস প্রক্রিয়াগুলি সেই বাফারটিতে লেখা সম্ভব ছিল , তবে স্পষ্টতই তারা লিখতে পারে /dev/kmsgএবং এটি আপস্টার্ট ঠিক ঠিক তাই করে। সুতরাং ধাঁধা প্রথম অংশ।
দ্বিতীয় অংশটি হ'ল একটি বহুল আলোচিত বিশ্বাস যে কার্নেল রিং বাফারে লিখিত বার্তাগুলি স্বয়ংক্রিয়ভাবে কার্নেল দ্বারা সিসলোগে অনুলিপি করা হয়েছে (কমপক্ষে এটি আমি সর্বদা ভেবেছিলাম)। দেখা যাচ্ছে এটি প্রকৃতপক্ষে কোনও ব্যবহারকারী স্পেস ডেমন দ্বারা সম্পন্ন হয়েছে, logতিহ্যগতভাবে ক্লোগড, যা সিসলগডের সাহায্যে পরিচালনা করে। স্পষ্টতই rsyslogd syslogd প্রতিস্থাপন করে তবে স্পষ্টতই এটি klogd প্রতিস্থাপন করে (সাজান: শেষে নোট দেখুন)।
তৃতীয় অংশটি হ'ল ব্যবহারকারীর স্থান থেকে কার্নেল রিং বাফারে লিখিত বার্তাগুলি আসলে কার্নেল স্পেস থেকে লিখিত বার্তাগুলির চেয়ে পৃথক দেখাচ্ছে: তাদের আলাদা সুবিধা রয়েছে। dmesg এর সাথে কয়েকটি বিকল্প রয়েছে যা এটির সাথে ইন্টারঅ্যাক্ট করে: -xসুবিধাটি (এবং অগ্রাধিকার) প্রদর্শন করবে -uএবং -kdmesg কে যথাক্রমে কেবল ব্যবহারকারী সুবিধা বার্তা এবং কার্নেল সুবিধা বার্তা প্রদর্শন করতে বলবে।
এখন ক্লিঞ্জারটি এখানে: ডিফল্টরূপে, আরএসস্লগড যখন কার্নেল রিং বাফার থেকে বার্তা পড়ছে তখন একটি নন-কার্নেল সুবিধা সহ বার্তাগুলি উপেক্ষা করে । প্রাসঙ্গিক কনফিগারেশন অপশনটি হ'ল $KLogPermitNonKernelFacilityএটি ডিফল্টরূপে বন্ধ আছে এবং যদি আপনি এই বার্তাগুলি প্রক্রিয়া করতে আরএসলগড করতে চান তবে এটি চালু করা দরকার। নোট করুন যে আরএসস্লগডের বাকী কনফিগারেশনে কার্নেলের রিং বাফারে kernযে সুবিধা ছিল তা বিবেচনা না করেই কার্নেল রিং বাফারের সমস্ত বার্তা সুবিধাযুক্ত হিসাবে বিবেচনা করবে ।
অধিক তথ্য
syslog- র
কোড জন্য glibc ফাংশন কল করে syslog- র লিখতে পারেন syslog(), বর্ণিত man 3 syslog। স্পষ্টতই এই ফাংশনগুলিতে লিখুন /dev/log। কোড পড়ার মাধ্যমে সিসলগ থেকে পড়তে /dev/logপারে syslogdএবং এটি এবং এর প্রতিস্থাপনগুলি এটি করে। এর ইনপুট মডিউলটি ব্যবহার করে rsyslogdপড়া ।/dev/logimuxsock
কার্নেলের রিং বাফার
কার্নেল স্পেসটি এই বাফারকে কার্নেল ফাংশনটি কল করে লেখেন printk(), তাই একে কখনও কখনও প্রিন্টক বাফারও বলা হয়। ব্যবহারকারীর স্থান এটি লিখে লিখে লিখতে পারে /dev/kmsg। ইউজার-স্পেস বিভিন্ন পদ্ধতি এই বাফার থেকে পড়তে পারেন: তা থেকে পড়তে পারেন /proc/kmsg(কি জন্য dmesg ডিফল্টরূপে করে), অথবা তা থেকে পড়তে পারেন /dev/kmsg, অথবা এটি সিস্টেম কল কল করতে পারেন syslog(), যা বর্ণনা করা হয়েছে man 2 syslogএবং সম্পূর্ণ ভিন্ন জন্য glibc ফাংশন থেকে syslog()বর্ণিত মধ্যে man 3 syslog। জন্য glibc আসলে সিস্টেম কল করার জন্য একটি মোড়কের প্রদান করে syslog(), বলা klogctl()সাহায্য করার জন্য এই বিভ্রান্তির উপশম।
Ditionতিহ্যগতভাবে, klogdএই ইন্টারফেসগুলির মধ্যে একটি থেকে পড়ে, তারপরে গ্লিবসি ফাংশনটি সেগুলিতে syslog()অনুলিপি করার জন্য কল করে । আরএসআইএসএলজিডি তার imklogইনপুট মডিউলের মাধ্যমে এই ইন্টারফেসগুলির syslog()মধ্যে একটিটি পড়ে তবে এএফএআইআইকি গ্লিবসি কল করতে বিরক্ত করে না , এ কারণেই এটি ঠিক ক্লগডের মতো নয়; এটি ঠিক imklogযেমন অন্য কোনও ইনপুট মডিউল থেকে আউটপুট প্রক্রিয়াজাত করে আউটপুট প্রক্রিয়া করে । কার্নেল রিং বাফারে সুবিধা বার্তাগুলি নির্বিশেষে সমস্ত imklogআউটপুটে kernসুবিধা রয়েছে বলে যুক্ত করা সাবধানতা রয়েছে ।
তথ্যসূত্র
dmesgতবে এটি এখানে বর্ণিত প্রসঙ্গ ছাড়া কোনও অর্থবোধ করে না।