আপনার লিনাক্স মেশিনে কোনো নির্দিষ্ট পোর্টে চলমান প্রসেস বন্ধ করার দরকার পड़े কি কখনো? আপনি চাইতে পারেন যে আপনার চালানো অ্যাপ্লিকেশন মিসবিহেভ করছে নেটওয়ার্ক রিসোর্স বা লোকাল সিপিইউ পাওয়ার হোগ করছে। এমন অ্যাপ্লিকেশন সিকিউরিটি হুমকিও হতে পারে जिसे আপনি দূর করতে চান।
কারণ যাই হোক, আপনি টার্মিনাল থেকে fuser, lsof, এবং netstat কমান্ডগুলো (kill-এর সাথে) ব্যবহার করে পোর্ট নম্বর ব্যবহার করে যেকোনো লিনাক্স প্রসেস খুঁজে বন্ধ করতে পারেন। এই কমান্ডগুলো অধিকাংশ লিনাক্স অপারেটিং সিস্টেমে কাজ করে, উবুন্টু সহ।
fuser কমান্ড ব্যবহার করে লিনাক্স প্রসেস কিল করার পদ্ধতি
পোর্ট নম্বর ব্যবহার করে প্রসেস কিল করার সবচেয়ে সহজ উপায় হচ্ছে fuser কমান্ড ব্যবহার করা। এই লিনাক্স টার্মিনাল কমান্ড ফাইল বা সকেট এক্সেস করা প্রসেস লিস্ট বা কিল করতে পারে। যদি কোনো অ্যাপ নেটওয়ার্ক এক্টিভিটির সাথে চলে (এবং তাই একটি ওপেন পোর্ট ব্যবহার করে), তবে এটি সম্ভবত এই দুটি কাজের যেকোনো একটি করছে।
এগিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনি আপনার লিনাক্স পিসিতে কমান্ড লাইন টার্মিনাল ব্যবহার করতে কামফরটেবল।
fuser ব্যবহার করে কোনো পোর্ট নম্বর ব্যবহার করা প্রসেস লিস্ট করতে নিচের সিনট্যাক্স ব্যবহার করুন:
fuser -n protocol port
এখানে protocol হতে পারে tcp বা udp, আর port হল আপনি যে পোর্ট নম্বর চেক করতে চান। উদাহরণস্বরূপ, TCP পোর্ট ৮০ কোন প্রসেসগুলো ব্যবহার করছে তা দেখতে চাইলে রান করুন:
fuser -n tcp 80
এটি সেই পোর্ট ব্যবহার করা প্রসেসগুলোর প্রসেস আইডি (PID) প্রিন্ট করবে।
এই প্রসেসগুলো কিল করতে fuser-এ -k অপশন যোগ করুন। এটি প্রতিটি প্রসেসকে SIGTERM সিগন্যাল পাঠাবে, যাতে সেগুলো গ্রেসফুলি টার্মিনেট होতে পারে। উদাহরণস্বরূপ:
fuser -k -n tcp 80
এটি TCP পোর্ট ৮০ ব্যবহার করা সকল প্রসেস কিল করবে।
যদি কিছু প্রসেস SIGTERM-এ রেসপন্স না দেয়, তবে -k এর বদলে -KILL ব্যবহার করুন। এটি কিল সিগন্যাল (SIGKILL) পাঠাবে, যা বর্তমান에 চলমান প্রসেসগুলাকে অবিলম্বে টার্মিনেট করতে বাধ্য করবে। তবে এটি ডেটা লস বা করাপশনের কারণ হতে পারে, তাই সাবধানে ব্যবহার করুন। উদাহরণস্বরূপ:
fuser -KILL -n tcp 80
এটি TCP পোর্ট ৮০ ব্যবহার করা সকল প্রসেস জোর করে কিল করবে। কোনো সমস্যা হলে এই কমান্ডগুলো sudo কমান্ড দিয়ে সুপার ইউজার হিসেবে বা রুট ইউজার হিসেবে রান করুন।
lsof কমান্ড ব্যবহার করে লিনাক্স প্রসেস কিল করার পদ্ধতি
লিনাক্স পিসিতে পোর্ট নম্বর ব্যবহার করে প্রসেস কিল করার আরেকটি উপায় হচ্ছে lsof কমান্ড। এই কমান্ড আপনার সিস্টেমে ওপেন ফাইল এবং সকেট লিস্ট করতে পারে।
নির্দিষ্ট পোর্ট নম্বর ব্যবহার করা প্রসেস লিস্ট করতে নিচের সিনট্যাক্স ব্যবহার করুন:
lsof -i protocol:port
এখানেও protocol হতে পারে tcp বা udp, আর port হল চেক করার পোর্ট নম্বর। উদাহরণস্বরূপ, TCP পোর্ট ৫৩ (সাধারণত DNS রিকোয়েস্টের জন্য ব্যবহৃত) কোন প্রসেসগুলো ব্যবহার করছে তা দেখতে এই কমান্ড রান করুন:
lsof -i tcp:53
এটি সেই পোর্ট ব্যবহার করা প্রতিটি প্রসেস সম্পর্কে তথ্য প্রিন্ট করবে, যার মধ্যে রয়েছে এর PID।
এই প্রসেসগুলো কিল করতে lsof-এ -t অপশন ব্যবহার করুন। এটি শুধু প্রসেসগুলোর PID প্রিন্ট করবে অন্য কোনো তথ্য ছাড়া। এরপর এই আউটপুটকে kill কমান্ডের সাথে পাইপ করুন যেকোনো সিগন্যাল অপশন দিয়ে। উদাহরণস্বরূপ:
kill $(lsof -t -i tcp:53)
এটি TCP পোর্ট ৫৩ ব্যবহার করা সকল প্রসেসকে SIGTERM সিগন্যাল (ডিফল্ট) পাঠাবে।
আগের মতো যদি কিছু প্রসেস SIGTERM-এ রেসপন্ড না করে, তবে kill-এর পরে কিছু না দিয়ে -9 ব্যবহার করুন। এটি SIGKILL সিগন্যাল পাঠাবে, সেগুলোকে অবিলম্বে টার্মিনেট করতে বাধ্য করবে কিন্তু ডেটা লস বা করাপশন হতে পারে। উদাহরণস্বরূপ:
kill -9 $(lsof -t -i tcp:53)
এটি TCP পোর্ট ৫৩ ব্যবহার করা সকল প্রসেসকে জোর করে SIGKILL সিগন্যাল পাঠাবে।
netstat কমান্ড ব্যবহার করে লিনাক্স প্রসেস কিল করার পদ্ধতি
আপনি netstat কমান্ডও ব্যবহার করতে পারেন আপনার লিনাক্স পিসিতে এক্টিভ এবং ওপেন নেটওয়ার্ক পোর্ট ব্যবহার করা রানিং প্রসেস ট্র্যাক ডাউন করতে। netstat আপনাকে নেটওয়ার্ক কানেকশন এবং পরিসংখ্যান দেখতে দেয়, যাতে আপনি সমসাময়িক প্রসেস পয়েন্ট আউট করতে পারেন।
পোর্ট নম্বর ব্যবহার করা প্রসেস এবং তাদের PID লিস্ট করতে দুটি অপশন যোগ করতে হবে: -p, যা PID দেখায়, এবং -l, যা শুধু লিসেনিং সকেট দেখায়।
আপনাকে প্রোটোকোলও স্পেসিফাই করতে হবে (tcp, udp, ইত্যাদি) এবং ঐচ্ছিকভাবে স্টেট অনুযায়ী ফিল্টার করতে পারেন (LISTEN, ইত্যাদি)। উদাহরণস্বরূপ, কোন TCP প্রসেসগুলো যেকোনো পোর্টে লিসেন করছে তা দেখতে রান করুন:
netstat -p tcp -l
এটি যেকোনো পোর্টে লিসেন করা প্রতিটি TCP সকেট সম্পর্কে তথ্য প্রিন্ট করবে, যার মধ্যে রয়েছে এর PID।
নির্দিষ্ট পোর্ট অনুযায়ী ফিল্টার করতে আরেকটি অপশন যোগ করতে হবে: -n, যা নামের বদলে न्यümerিক্যাল অ্যাড্রেস দেখায়। আপনাকে এক্স্যাক্ট অ্যাড্রেস ফরম্যাটও স্পেসিফাই করতে হবে: [protocol][@hostname|hostaddr][:service|port]。
উদাহরণস্বরূপ, TCP পোর্ট ৮০-এ লিসেন করা প্রসেসগুলো দেখতে রান করুন:
netstat -p tcp -l -n 80
এটি পোর্ট ৮০৮০-এ লিসেন করা প্রতিটি TCP সকেট সম্পর্কে তথ্য প্রিন্ট করবে, যার মধ্যে রয়েছে এর PID।
এই প্রসেসগুলো কিল করতে netstat থেকে পাওয়া PID-গুলো দিয়ে kill কমান্ড ব্যবহার করুন যেকোনো সিগন্যাল অপশন সহ। উদাহরণস্বরূপ:
kill 1234 5678
এটি PID ১২৩৪ এবং ৫৬৭৮ 가진 প্রসেসগুলকে SIGTERM সিগন্যাল (ডিফল্ট) পাঠাবে।
আগের মতো যদি কিছু প্রসেস SIGTERM-এ রেসপন্ড না করে, তবে kill-এর পরে -9 ব্যবহার করুন। এটি SIGKILL সিগন্যাল পাঠাবে, সেগুলোকে অবিলম্বে টার্মিনেট করতে বাধ্য করবে কিন্তু ডেটা লস বা করাপশন হতে পারে। উদাহরণস্বরূপ:
kill -9 1234 5678
এটি PID ১২৩৪ এবং ৫৬৭৮ 가진 প্রসেসগুলকে জোর করে SIGKILL সিগন্যাল পাঠাবে। আপনার রানিং প্রসেসের সঠিক PID দিয়ে ১২৩৪ প্রতিস্থাপন করুন।
আপনার লিনাক্স অ্যাপ্লিকেশন নিয়ন্ত্রণ করুন
উপরে বর্ণিত ধাপগুলো অনুসরণ করে, আপনি লিনাক্স কমান্ড লাইন ব্যবহার করে পোর্ট নম্বর ব্যবহার করে যেকোনো রানিং লিনাক্স প্রসেস দ্রুত কিল করতে পারেন। প্রসেস কিল করার সময় সতর্কতা বজায় রাখুন, বিশেষ করে SIGKILL সিগন্যালের সাথে, কারণ এতে অনাকাঙ্ক্ষিত সাইড ইফেক্ট হতে পারে—আপনি সিস্টেম অস্থিরতা সৃষ্টি করতে চান না।
লিনাক্সে আপনার সিস্টেম পারফরম্যান্স ঘনিষ্ঠভাবে দেখতে চান? আপনি লিনাক্সে মেমরি ইউজেজ চেক করতে পারেন। আপনি যদি পটেনশিয়াল সিকিউরিটি রিস্ক নিয়ে চিন্তিত হন, তবে লিনাক্সে পাসওয়ার্ড পরিবর্তনও করতে পারেন।
নতুন লিনাক্স ডিস্ট্রিবিউশনে স্যুইচ করতে চান? আপনি যদি বিগিনার হন, তবে লিনাক্স মিন্ট একটি নিরাপদ এবং স্ট্যাবল বিকল্প হিসেবে বিবেচনা করতে পারেন।