লিনাক্সে একটি প্রসেস কিল করার জন্য অনেক মেথড ব্যবহার করা যায়। এই টিউটোরিয়াল আপনাকে শিখাবে কিভাবে ব্রোকেন প্রসেস খুঁজে বের করে কিল করা যায়।
একটি প্রসেস সহজে অনাথ হয়ে যেতে পারে। উদ্দেশ্য থাকা বা নাও থাকা, একটি পেরেন্ট প্রসেস ক্র্যাশ করে চাইল্ড প্রসেস চালু রেখে দিতে পারে। কখনও কখনও, একটি পেরেন্ট প্রসেস একটি সম্পূর্ণ হয়ে যাওয়া চাইল্ড প্রসেস রিপ করতে ব্যর্থ হয়, এবং সেটি জম্বি হয়ে যায়।
এই দুটি প্রসেসই আটকে যাবে এবং ম্যানুয়াল ইন্টারভেনশন দরকার। এন্টার জব কন্ট্রোল। চলুন ব্রোকেন প্রসেস কিল করার পদ্ধতি দেখি।
কয়েকটি কমান্ড দেখি:
- top (এবং কেন htop সম্ভবত ভালো)
- ps
- kill
Top (সার্চ অ্যান্ড ডিস্ট্রয়)
আপনি কিল মেসেজ সকল প্রসেসে পাঠাতে শুরু করার আগে, আপনাকে জানতে হবে আপনার কাছে কী আছে। আমরা অনুমান করি না যে ব্রোকেন প্রসেস চলছে, এবং সঠিক কী খুঁজব সেটি জানি। সেটিই আমাদের top আছে। চলুন vim চালিয়ে ব্যাকগ্রাউন্ডে পাঠাই।

vim
ঠিক আছে, এখন আমাদের একটি প্রসেস আছে যেটি নরমালি ইন্টারঅ্যাক্ট করা যায় না। চলুন top চালাই। নরমাল আউটপুট হেল্পফুল নয়, তাই ফিল্টার চালাব।
- Shift+l চাপুন
- টাইপ vim
- এন্টার চাপুন

top
সেটি আউটপুট। আপনি লক্ষ্য করবেন প্রথম লাইনে, এটি আপটাইম, ইউজার সংখ্যা, এবং লোড অভারেজ বলে। আপনি লক্ষ্য করবেন কলামগুলতে গুরুত্বপূর্ণ ইনফো আছে। নরমাল ডে-টু-ডে আমি S, %CPU, এবং TIME+ দেখি। যদি প্রসেস Z (zombie) স্টেটে থাকে, আমি জানি কিল করতে হবে। যদি প্রসেস 100% CPU-এর উপরে থাকে, সেটি ওভাররান হয়েছে এবং কিল করতে হতে পারে। অথবা যদি প্রসেস কয়েক দিন ধরে চলে, হয়তো রিস্টার্ট করার সময়। যদিও সেটি সম্ভবত পেরানোইয়া, এবং অধিকাংশ কেসে প্রয়োজন নেই।
আজ আমরা সেকেন্ড লাইনে দেখছি, জম্বি এবং অনাথ প্রসেস হান্টিং। আমাদের উদাহরণে জম্বি প্রসেস চলছে না, তাই “2 stopped” প্রসেসের জন্য ফিল্টার করব।
- o চাপুন
- টাইপ: S=T

Filtering top
এখন আমরা S=T (state=stopped) ফিল্টারে নেমে এসেছি, সেগুলো কিল করতে পারি। top-এ থাকাকালীন k চাপুন, প্রসেস PID লিখুন, এন্টার চাপুন। আপনি যদি রান থ্রু করেন, লক্ষ্য করবেন এটিতে কিছুটা সময় লাগতে পারে শেষ করতে। বদলে, আবার k চাপুন, PID লিখুন, এবং সিগন্যাল 9-এ চেঞ্জ করুন।
এটি পারফেক্ট নয়, কিন্তু আপনার একটি top উইন্ডো স্ট্যাটাস উইন্ডো হিসেবে চলছে থাকলে, আপনি ইতিমধ্যে সেখানে আছেন। আপনি স্টপ সিগন্যালের বদলে কিল সিগন্যালও পাঠাতে পারেন।
htop
ठিক আছে, আমি মেনে নিচ্ছি। এটি top থেকে 별로 ভিন্ন নয়। রং ছাড়া।

htop
খুব বেশি রং।
PS
PS, প্রসেস স্ট্যাটাস। আমাদের প্রিয় নেটিভ ইউটিলিটি সিস্টেমে প্রসেস ইনফরমেশন ভিউ করার জন্য। এই টুল /proc-এ থাকা ফাইলগুলো থেকে পড়ে। অধিকাংশ দিন, আপনি ব্যবহার করবেন:

PS
- -a, সকল ইউজারের জন্য প্রসেস দেখাও
- -u, প্রসেস ওনার দেখাও
- -x, টার্মিনালে আট্যাচ না করা প্রসেস দেখাও
ps -aux একসাথে চালালে সব কিছু পাওয়া যাবে, কিন্তু এটিLang রিরেলি হেল্পফুল নয়। চলুন grep-এ পাইপ করি, এবং আমাদের হারানো vim খুঁজে বের করি।

ps-aux command
এখানে সেটি আছে! আপনার কারেন্ট grep কমান্ডটিও সেখানে দেখবেন। আপনি যদি সেটি না চান, তবে grep একটু চেঞ্জ করুন।

ps-aux command with grep
সেটি আছে। এখন vim খুঁজুন, কিন্তু আমাদের grep প্রসেস যা vim খুঁজছে সেটি मत দেখান। এখন kill করি প্রসেসটি। killall দিয়ে শুরু করি, তারপর kill ট্রাই করব।
একটি প্রসেস কিল করা (Killall & Kill)
ঠিক আছে, আমাদের যা দরকার সেটি আছে। একটি প্রসেস নাম (vim) এবং প্রসেস আইডি (140464)। killall নাম ব্যবহার করে, এবং kill প্রসেস আইডি ব্যবহার করে। প্রতিটি একই সেট সিগন্যাল পাঠায়: HUP, INT, KILL, TERM, এবং STOP সবচেয়ে কমন। আপনি যদি আরও জানতে চান, kill -l দিয়ে লিস্ট চেক করুন।

kill -l command
সাধারণ সিগন্যালগুলো খুঁজে বের করা যাক:
- HUP, সিগন্যাল ভ্যালু ১। হ্যাঙ্গআপ। ফোন এবং মডেম লাইন থেকে বাঁচা একটি পুরনো টার্ম। অধিকাংশ সিস্টেমে হ্যাঙ্গআপ একটি ডেমনকে রিস্টার্ট করবে, এন্ড করবে না।
- INT, সিগন্যাল ভ্যালু ২। ইন্টারাপ্ট। সাধারণত প্রসেসের সাথে ইন্টারঅ্যাক্ট করার সময় CTRL+C পাঠাতে পারেন ইন্টারাপ্ট করার জন্য। kill -2 পাঠালে সেম ইন্টারাপ্ট সিগন্যাল রান হবে।
- KILL, সিগন্যাল ভ্যালু ৯। কিল। এটি সাধারণত আমরা যা খুঁজি। এটি একটি PID-কে তৎক্ষণাৎ কিল করে।
- TERM, সিগন্যাল ভ্যালু ১৫। টার্মিনেট। এটি প্রসেস এন্ড করার নরমাল বিহেভিয়ার। আপনি যদি একটি প্রসেসের সাথে কינ্ড হতে চান, তবে সেটি इसीভাবে এন্ড করুন, গ্রেসফুলি। ডিফল্টভাবে kill সিগন্যাল ১৫ পাঠায়।
- STOP, সিগন্যাল ভ্যালু ১৭, ১৯, ২৩। এটি একটি প্রসেস পজ করবে। মনে করুন আপনি একটি বড় ডিরেক্টরি কপি করছেন, এবং বুঝতে পারেন কিছু ফোল্ডার রিমুভ করতে হবে। SIGSTOP পাঠান, ফোল্ডার রিমুভ করুন, এবং SIGCONT দিয়ে রিজিউম করুন।
ঠিক আছে, আমি সিগন্যাল ভ্যালুগুলো যোগ করেছি। সিগন্যালের ন্যামেরিক ভ্যালু এবং আপনার kill কমান্ডে টাইপ করার বদলে ব্যবহার করা যায়। উদাহরণস্বরূপ:
- killall -9 vim
vim নামে সব কিছু কিল করার চেষ্টা করবে। আমি রিকমেন্ড করি যে যখনই আপনি killall ব্যবহার করেন, পরে ভেরিফাই করুন আপনার প্রসেস সফলভাবে কিল হয়েছে কিনা।

killall -9 vim
যদি কিছু বাকি থাকে, ম্যানুয়ালি kill -9 প্রসেস আইডি দিয়ে কিল করুন। উদাহরণস্বরূপ:
- kill -9 140464
উপসংহার
সেটি আছে, প্রসেস কিল করার একটি সিম্পল ব্যাখ্যা। ওভাররান প্রসেসের জন্য top দিয়ে শুরু করুন। স্টাক গ্রাফিক্যাল প্রসেসের জন্য killall ব্যবহার করুন। kill দিয়ে যেকোনো অবশিষ্ট আইসোলেট করুন। এটি আপনার অধিকাংশ সমস্যা নিবারণ করবে।
সন্দেহ হলে, রিবুট করুন। সঠিক নোটিফিকেশন প্রসিডিউর ফলো করুন রিবুট করার আগে। আরও শেল কমান্ড শিখুন, এবং আপনার লিনাক্স স্কিল ব্রাশ আপ করুন।