লিনাক্সে একটি প্রক্রিয়াকে মেরে ফেলার জন্য ব্যবহার করা যেতে পারে এমন অনেক পদ্ধতি রয়েছে। এই টিউটোরিয়ালটি আপনাকে শিখাবে কিভাবে ভাঙা প্রক্রিয়া খুঁজে বের করতে হয় এবং মেরে ফেলতে হয়।
একটি প্রক্রিয়া সহজেই অনাথ হয়ে যেতে পারে। উদ্দেশ্যমূলক হোক বা না হোক, একটি অভিভাবক প্রক্রিয়া ক্র্যাশ হতে পারে এবং একটি শিশু প্রক্রিয়া চলমান রেখে যেতে পারে। কখনও কখনও, একটি অভিভাবক প্রক্রিয়া একটি সম্পূর্ণ শিশু প্রক্রিয়া কাটতে ব্যর্থ হয়, এবং এটি একটি জম্বি হয়ে যায়।
এই দুটি প্রক্রিয়াই আটকে আছে এবং ম্যানুয়াল হস্তক্ষেপ প্রয়োজন। কাজের নিয়ন্ত্রণ লিখুন৷৷ চলুন দেখে নেওয়া যাক কীভাবে ভাঙা প্রক্রিয়াগুলিকে মেরে ফেলা যায়।
আসুন কয়েকটি কমান্ড দেখি:
- শীর্ষ (এবং কেন htop সম্ভবত ভাল)
- ps
- হত্যা করুন
শীর্ষ (অনুসন্ধান এবং ধ্বংস)
আপনি সমস্ত প্রক্রিয়ায় হত্যা বার্তা পাঠানো শুরু করার আগে, আপনার কাছে কী আছে তা জানতে হবে। আমরা অনুমান করি না যে আমাদের চলমান প্রক্রিয়াগুলি ভেঙে গেছে এবং ঠিক কী সন্ধান করতে হবে তা জানি। এটাই আমাদের শীর্ষ আছে জন্য চলুন vim চালাই এবং এটিকে ব্যাকগ্রাউন্ডে পপ করুন।
vim
ঠিক আছে, এখন আমাদের কাছে এমন একটি প্রক্রিয়া আছে যার সাথে আমরা সাধারণত যোগাযোগ করতে পারি না। চলুন টপ চালাই . স্বাভাবিক আউটপুট সহায়ক নয়, তাই আমরা একটি ফিল্টার চালাব।
- shift+l চাপুন
- vim টাইপ করুন
- এন্টার টিপুন
শীর্ষ
আমাদের আউটপুট আছে। আপনি প্রথম লাইনে লক্ষ্য করবেন, এটি আমাদের আপটাইম, ব্যবহারকারীর সংখ্যা এবং আমাদের লোড গড় বলে। আপনি কলামগুলিতে গুরুত্বপূর্ণ তথ্যও লক্ষ্য করবেন। স্বাভাবিক প্রতিদিন আমি S দেখছি , %CPU , এবং TIME+ . একটি প্রক্রিয়া Z (জম্বি) অবস্থায় থাকলে আমি এটিকে হত্যা করতে জানি। যদি একটি প্রক্রিয়া 100% সিপিইউ-এর বেশি হয়, তবে এটি ওভাররান এবং মেরে ফেলার প্রয়োজন হতে পারে। অথবা যদি একটি প্রক্রিয়া কয়েক দিন ধরে চলছে, তবে এটি পুনরায় চালু করার সময়। যদিও এটি সম্ভবত প্যারানিয়া, এবং বেশিরভাগ ক্ষেত্রে এটি প্রয়োজনীয় নয়৷
আজ আমরা দ্বিতীয় লাইনটি দেখছি, জম্বিদের শিকার করা এবং এতিমদের জন্য অনুসন্ধান করা। আমাদের উদাহরণের জন্য আমাদের একটি জম্বি প্রক্রিয়া চলছে না, তাই আমরা "2টি বন্ধ" প্রক্রিয়াগুলির জন্য ফিল্টার করব৷
- o টিপুন
- প্রকার:S=T
ফিল্টারিং শীর্ষ
এখন যেহেতু আমরা শুধুমাত্র S=T-এর প্রক্রিয়াগুলিতে ফিল্টার করেছি (state=stopped) ফিল্টার, আমরা তাদের মেরে ফেলতে পারি। উপরে থাকাকালীন, আপনি k টিপতে পারেন , প্রক্রিয়া PID লিখুন , এবং এন্টার টিপুন। আপনি যদি দৌড়াচ্ছেন, আপনি লক্ষ্য করবেন এটি শেষ হতে কিছুটা সময় লাগতে পারে। পরিবর্তে, k টিপুন আবার, PID, লিখুন এবং সিগন্যালকে 9 এ পরিবর্তন করুন .
এটি নিখুঁত নয়, তবে আপনার যদি একটি শীর্ষ উইন্ডোটি স্ট্যাটাস উইন্ডো হিসাবে চলমান থাকে তবে আপনি ইতিমধ্যে সেখানে আছেন। আপনি স্টপ সিগন্যালের পরিবর্তে কিল সিগন্যালও পাঠাতে পারেন।
htop
ঠিক আছে, আমি স্বীকার করব। এটি শীর্ষ থেকে খুব বেশি আলাদা নয়। রঙ ব্যতীত।
htop
এত রঙ।
PS
PS, প্রক্রিয়া অবস্থা। আমাদের সিস্টেমে প্রক্রিয়া তথ্য দেখার জন্য আমাদের সুন্দর নেটিভ ইউটিলিটি। এই টুলটি /proc-এর ফাইলগুলি থেকে পড়ে . বেশিরভাগ দিন, আপনি ব্যবহার করতে যাচ্ছেন:
পিএস
- -a , সমস্ত ব্যবহারকারীর জন্য প্রসেস দেখান
- -u , প্রদর্শন প্রক্রিয়া মালিকদের
- -x , একটি টার্মিনালে সংযুক্ত নয় প্রক্রিয়া দেখান
ps -aux চলছে একাই আপনাকে সবকিছু এবং যেকোনো কিছু জাল করবে, কিন্তু এটি খুব কমই সহায়ক। আসুন গ্রেপের জন্য পাইপ করি, এবং আমাদের হারিয়ে যাওয়া ভিম খুঁজে পাই।
ps-aux কমান্ড
এবং এটা আছে! আপনি সেখানে আপনার বর্তমান grep কমান্ড দেখতে পাবেন। আপনি যদি তা না চান, তাহলে আপনার গ্রেপ এ স্মিজ পরিবর্তন করুন।
grep
সহ ps-aux কমান্ডসেখানে। এখন vim সন্ধান করুন , কিন্তু vim খুঁজছেন গ্রেপ প্রক্রিয়া আমাদের দেখাবেন না . এখন চলুন হত্যা করি প্রক্রিয়া. আমরা হত্যা দিয়ে শুরু করব , এবং তারপর হত্যা করার চেষ্টা করুন .
একটি প্রক্রিয়াকে হত্যা করা (কিল্লাল এবং হত্যা)
ঠিক আছে, আমাদের যা দরকার তা আছে। একটি প্রক্রিয়ার নাম (vim ) এবং প্রক্রিয়া আইডি (140464)। হত্যা নাম ব্যবহার করে, এবং হত্যা করে প্রসেস আইডি ব্যবহার করে। প্রত্যেকে একই সংকেত পাঠায়:HUP , INT , হত্যা করুন , TERM , এবং স্টপ সবচেয়ে সাধারণ। আপনি যদি আরও জানতে চান, তাহলে হত্যা দিয়ে তালিকাটি দেখুন -l .
kill -l কমান্ড
আসুন সাধারণ সংকেতগুলি খনন করি:
- HUP , সংকেত মান 1. হ্যাংআপ। একটি তারিখযুক্ত শব্দ যা ফোন এবং মডেম লাইন থেকে বেঁচে আছে। বেশিরভাগ সিস্টেমে হ্যাংআপের ফলে শেষের পরিবর্তে একটি ডেমন পুনরায় চালু হবে।
- INT , সংকেত মান 2. বাধা. সাধারণত, একটি প্রক্রিয়ার সাথে ইন্টারঅ্যাক্ট করার সময় আপনি বাধা দিতে CTRL+C পাঠাতে পারেন। কিল -2 পাঠানো একই ইন্টারাপ্ট সিগন্যাল চালায়।
- কিল , সংকেত মান 9. হত্যা. এটি আমরা সাধারণত খুঁজছি। এটি অবিলম্বে একটি পিআইডিকে হত্যা করে৷
- TERM , সংকেত মান 15. সমাপ্ত. এটি একটি প্রক্রিয়া সমাপ্তির জন্য স্বাভাবিক আচরণ। আপনি যদি একটি প্রক্রিয়ার প্রতি সদয় হতে চান, তাহলে আপনি এইভাবে এটি শেষ করতে চান, সুন্দরভাবে। ডিফল্টরূপে, কিল 15 সংকেত পাঠায়।
- বন্ধ করুন , সংকেত মান 17, 19, 23. এটি একটি প্রক্রিয়া বিরতি দেয়। বলুন আপনি একটি বড় ডিরেক্টরি অনুলিপি করছেন এবং বুঝতে পারেন আপনি কিছু ফোল্ডার সরাতে চান। SIGSTOP পাঠান, ফোল্ডারগুলি সরান, এবং SIGCONT দিয়ে আবার শুরু করুন৷ ৷
ঠিক আছে, আমি সংকেত মান যোগ করেছি। সেগুলি হল একটি সংকেতের সাংখ্যিক মান এবং আপনার হত্যা এ ব্যবহার করা যেতে পারে৷ SIGHUP টাইপ করার পরিবর্তে কমান্ড দিন। উদাহরণস্বরূপ:
- killall -9 vim
ভিম নামের সবকিছু মেরে ফেলার চেষ্টা করবে। আমি সুপারিশ করছি যে আপনি যখনই কিল্লাল ব্যবহার করছেন, আপনি যাচাই করুন যে আপনার প্রক্রিয়াটি সফলভাবে শেষ হয়ে গেছে।
killall -9 vim
কিছু অবশিষ্ট থাকলে, kill -9 দিয়ে ম্যানুয়ালি হত্যা করুন প্রক্রিয়া আইডি দ্বারা অনুসরণ. যেমন:
- হত্যা -9 140464
উপসংহার
সেখানে এটি একটি প্রক্রিয়া হত্যার একটি সহজ ব্যাখ্যা। ওভাররান প্রক্রিয়াগুলির জন্য শীর্ষ দিয়ে শুরু করুন। হত্যা ব্যবহার করুন আটকে থাকা গ্রাফিকাল প্রক্রিয়া সহ। হত্যা দিয়ে যেকোনো অবশিষ্টাংশকে আলাদা করুন . এটি আপনার বেশিরভাগ সমস্যার যত্ন নেবে।
সন্দেহ হলে, রিবুট করুন। আপনি করার আগে সঠিক বিজ্ঞপ্তি পদ্ধতি অনুসরণ করুন. আরও শেল কমান্ড জানুন, এবং আপনার লিনাক্স দক্ষতার উপর ব্রাশ করুন।