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

SysRq কিভাবে চালু করবেন#

আপনার কার্নেল SysRq সাপোর্ট সহ কম্পাইল করা থাকলে, /proc/sys/kernel/sysrq এর মাধ্যমে এটির ফাংশনগুলো চালু/বন্ধ করতে পারবেন। /proc/sys/kernel/sysrq ফাইলে নিচের মানগুলো থাকতে পারে:

0 - SysRq সম্পূর্ণরূপে বন্ধ করে দেয়

1 - SysRq এর সকল ফাংশন চালু করে

> 1 - অনুমোদিত SysRq ফাংশনগুলোর bitmask

আপনি নিচের কমান্ড দিয়ে ফাইলটিতে মান সেট করতে পারেন:

echo NUMBER > /proc/sys/kernel/sysrq

মনে রাখবেন, এই ফাইল শুধুমাত্র কীবোর্ড দিয়ে SysRq ব্যবহার কন্ট্রোল করে। /proc/sysrq-trigger ব্যবহার করে আপনি যেকোন কমান্ড ব্যবহার করতে পারবেন, এমনকি যদি তা উক্ত ফাইলে চালু না থাকে।

SysRq কিভাবে ব্যবহার করবেন#

  • x86 সিস্টেমে

ALT + SysRq +<command key>

বি. দ্র.: অনেক কীবোর্ডে আলাদা SysRq কী নেই। SysRq সাধারণত Print Screen কী-এর সাথে শেয়ার করা থাকে, যেখানে “Print Screen” উপরে এবং “SysRq” নিচে লেখা থাকে।

  • যেকোন সিস্টেমে

/proc/sysrq-trigger ফাইলে একটি <command key> লিখুন। উদাহরণ:

echo b > /proc/sysrq-trigger

আপনি যদি একাধিক কমান্ড একসাথে দিতে চান, তাহলে আগে _ ব্যবহার করুন:

echo _reisub > /proc/sysrq-trigger

SysRq এর <command key> গুলোর তালিকা#

  • b - ডিস্ক sync বা mount না করেই সিস্টেমকে তৎক্ষণাৎ রিবুট করবে

  • c - সিস্টেমকে ক্র্যাশ করিয়ে ক্র্যাশ ডাম্প সংগ্রহ করবে (যদি সেট-আপ করা থাকে)

  • e - init ব্যতীত সকল প্রসেসকে SIGTERM পাঠাবে

  • f - OOM killer এর মাধ্যমে অতিরিক্ত মেমোরি ব্যবহারকারী প্রসেসকে kill করবে

  • h - help দেখাবে

  • i - init ব্যতীত সকল প্রসেসকে SIGKILL পাঠাবে

  • k - Secure Access Key (SAK) বর্তমান ভার্চুয়াল কনসোলের সকল প্রোগ্রামকে kill করবে

  • o - কম্পিউটার বন্ধ করে দিবে

  • r - কীবোর্ডের raw mode বন্ধ করে XLATE সেট করে

  • s - মাউন্ট করে রাখা সকল ফাইলসিস্টেম sync করার চেষ্টা করবে

  • t - সিস্টেমে চলমান কাজগুলোর তালিকা ও তাদের তথ্য কনসোলে ডাম্প করবে

  • u - মাউন্ট করে রাখা সকল ফাইলসিস্টেম পুনরায় read-only হিসেবে মাউন্ট করার চেষ্টা করবে

  • w - সিস্টেমের যে কাজগুলো uninterruptible (blocked) অবস্থায় আছে, সেগুলোকে ডাম্প করবে

  • 0-9 - কনসোলের লগের মাত্রা নির্ধারণ করে। এভাবে কার্নেলের কোন বার্তাগুলো কনসোলে দেখাবে তা নিয়ন্ত্রণ করে।

  • R - কার্নেল লগের বার্তাগুলো কনসোলে রিপ্লে করবে

যে যে কাজে লাগে#

  • r - X server বা কোন svgalib প্রোগ্রাম ক্র্যাশ করলে কাজে লাগে

  • k - Secure Access Key (SAK) কাজে লাগে যখন আপনি নিশ্চিত করতে চান যে, কনসোলে কোন Trojan চলছে না। কারণ আপনি লগ-ইন করার সময় Trojan আপনার পাসওয়ার্ড চুরি করতে পারে। এই কমান্ড কনসোলটির সকল প্রোগ্রাম kill করে দিবে। এভাবে আপনি নিশ্চিত করতে পারবেন কনসোলের লগ-ইন অংশটি আসলেই init থেকে এসেছে, কোন Trojan থেকে নয়। পাশাপাশি, অনেকে যখন কোন প্রোগ্রাম কনসোল পাল্টাতে দেয় না সেটাকে বন্ধ করতে এটা ব্যবহার করে (যেমন X বা svgalib প্রোগ্রাম)।

  • b, o - এগুলো ব্যবহার করা যায় যখন আপনি কম্পিউটার বন্ধ করতে পারছেন না।

  • c - এইটা ব্যবহার করে সিস্টেমকে কৃত্রিমভাবে ক্র্যাশ করিয়ে ক্র্যাশ ডাম্প সংগ্রহ করা যায় (যদি ডাম্প ব্যবস্থাপনা সেট-আপ করা থাকে)।

  • s - sync নিশ্চিত করে যে, আপনার ডাটা ডিস্কে লিখা সম্পন্ন হয়েছে। এটা কাজে লাগে removable medium খোলার পূর্বে বা rescue shell ব্যবহারের পর (যদি সেটাতে সিস্টেম বন্ধ করার অপশন না থাকে)। তবে মনে রাখবেন যে, স্ক্রিনে “OK” আর “Done” আসার আগ পর্যন্ত sync সম্পন্ন হয়নি।

  • লগ লেভেল 0-9 কাজে লাগে যখন কার্নেলের অপ্রয়োজনীয় বার্তা কনসোল ভরিয়ে ফেলে। 0 দিয়ে সবচেয়ে জরুরি কার্নেল বার্তাগুলো (PANIC আর OOPS) বাদে বাকি সব বন্ধ করে দেয়া যায়।

  • e, i - এগুলো কাজে লাগে যখন কোন runaway প্রসেস অন্য উপায়ে kill করা যায় না।

  • R - এটা কার্নেল লগের বার্তাগুলো দেখতে কাজে লাগে যখন সিস্টেম হ্যাং হয়ে যায়, কিংবা যখন আপনি printk বাফারে dmesg ব্যবহার করতে পারেন না।

SysRq Key সম্পর্কে বিস্তারিত জানতে এই লিংক ভিজিট করুন।

তথ্যসূত্র: The Linux Kernel Documentation