linux যবহ কিভাবে লিনাক্সে নির্দিষ্ট পোর্টে চলমান একটি প্রক্রিয়া হত্যা করবেন?




লিনাক্স ব্যবহার (15)

নির্দিষ্ট পোর্টে চলমান পরিষেবাটির পিসি জানতে:

netstat -tulnap | grep :*port_num*

আপনি যে প্রক্রিয়া বিবরণ পাবেন। এখন হত্যা বা হত্যা -9 পিড ব্যবহার করুন। সহজে নিহত।

যেমন

netstat -ap | grep :8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

এখন:

kill -9 1880

root হিসাবে সব কমান্ড চালানোর মনে রাখবেন

আমি ./shutdown.sh /bin ডিরেক্টরি থেকে ./shutdown.sh ব্যবহার করে ./shutdown.sh বন্ধ করার চেষ্টা করেছি। কিন্তু সার্ভার সঠিকভাবে বন্ধ করা হয় নি। এবং এইভাবে আমি পুনরায় আরম্ভ করতে পারিনি
আমার tomcat পোর্ট 8080 চলমান হয়।

আমি 8080 চলমান টম্যাট প্রক্রিয়া হত্যা করতে চান। আমি প্রথম কোনও নির্দিষ্ট পোর্টে (8080) চলমান প্রসেসগুলির তালিকাটি দেখতে চাই, যাতে কোন প্রক্রিয়াটি হত্যা করা যায়।


  1. lsof -i tcp:8000 এই কমান্ডটি পোর্ট 8000 এ চলমান প্রক্রিয়া সম্পর্কে তথ্য তালিকাবদ্ধ করে

  2. kill -9 [PID] এই কমান্ড প্রক্রিয়া হত্যা


এই fuser 8080/tcp আপনাকে পোর্টে আবদ্ধ প্রক্রিয়ার PID মুদ্রণ করবে।

এবং এই fuser -k 8080/tcp যে প্রক্রিয়া হত্যা করবে।

শুধুমাত্র লিনাক্স কাজ করে। আরো সার্বজনীন lsof -i4 (অথবা IPv6 এর জন্য 6) ব্যবহার করা হয়।


আমি নির্দিষ্ট পোর্টের জন্য শুধুমাত্র এই তালিকাটি যুক্ত করতে চাই।

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)


এই <port_number> চলমান সমস্তকিছুগুলির প্রক্রিয়া <port_number> করতে প্রিন্ট করে:

fuser -n tcp <port_number> 

এটি stderr কিছু উপাদান মুদ্রণ, তাই:

fuser -n tcp <port_number> 2> /dev/null

আমরা তখন kill কমান্ডে এই প্রক্রিয়া id সরবরাহ করতে পারি:

sudo kill $(fuser -n tcp <port_number> 2> /dev/null)

যদি আপনি এটি অনেক কিছু করেন তবে আপনি এটি একটি ফাংশনেও রাখতে পারেন:

function killport() {
    sudo kill $(fuser -n tcp $1 2> /dev/null)
}

আপনি lsof কমান্ড ব্যবহার করতে পারেন। এখানে মত পোর্ট নম্বর 8090 হয়

lsof -i:8090

এই কমান্ডটি এই পোর্টে খোলা প্রসেসগুলির একটি তালিকা প্রদান করে।

কিছুটা এইরকম…

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

পোর্টটি মুক্ত করার জন্য, এটি ব্যবহার করে প্রক্রিয়াটিকে হত্যা করুন (প্রক্রিয়া আইডি 75782) ...

kill -9 75782

এই এক আমার জন্য কাজ। এখানে মূল পোস্ট থেকে link : link


লিনাক্স : আপনি যদি পোর্টটি জানেন তবে প্রথমে আপনি এই কমান্ডটির PID খুঁজে পেতে পারেন:

netstat -tulpn 

উদাহরণ: -

 Local Address  Foreign Address  State    PID/Program name

  :::3000       :::*             LISTEN    15986/node 

আপনি তারপর হত্যা প্রক্রিয়া গ্রহণ। নিম্নলিখিত কমান্ড চালান:

হত্যা -9 পিআইডি

উদাহরণ: -

হত্যা -9 15986


যদি আপনি 8080 পোর্ট নম্বরটিতে চলমান একটি প্রক্রিয়াটি মারতে চান তবে প্রথমে আপনাকে 8080 পোর্ট প্রসেস আইডেন্টিফিকেশন নম্বর (পিআইডি) খুঁজে বের করতে হবে এবং তারপরে এটি হত্যা করতে হবে। 8080 পোর্ট নম্বর PID খুঁজে পেতে নিম্নলিখিত কমান্ডটি চালান:

sudo lsof -t -i:8080

এখানে,

  • sudo কমান্ড অ্যাডমিন বিশেষাধিকার জিজ্ঞাসা (ব্যবহারকারী আইডি এবং পাসওয়ার্ড)।
  • lsof - ফাইলের তালিকা (এছাড়াও সম্পর্কিত প্রসেস তালিকা জন্য ব্যবহার করা হয়)
  • -t - শুধুমাত্র প্রক্রিয়া আইডি প্রদর্শন
  • -আই - শুধুমাত্র ইন্টারনেট সংযোগ সম্পর্কিত প্রক্রিয়া প্রদর্শন
  • : 8080 - এই পোর্ট নম্বরটিতে কেবলমাত্র প্রসেস দেখান

তাই আপনি এখন নিম্নলিখিত কমান্ড ব্যবহার করে সহজেই আপনার পিআইডি মারতে পারেন:

sudo kill -9 <PID>

এখানে,

  • হত্যা - প্রক্রিয়া হত্যা করার কমান্ড
  • -9 - জোরপূর্বক

নিম্নলিখিত কমান্ডটি ব্যবহার করে নির্দিষ্ট পোর্টে একটি প্রক্রিয়া খোলার জন্য আপনি এক কমান্ড ব্যবহার করতে পারেন:

sudo kill -9 $(sudo lsof -t -i:8080)

আরো জন্য আপনি নিম্নলিখিত লিঙ্কটি দেখতে পারেন কিভাবে লিনাক্সে একটি নির্দিষ্ট পোর্টের প্রক্রিয়াটি হত্যা করবেন


কি @ বলেছেন:

যদি আপনি বন্দরে কি জানতে চান, এটি হত্যা করার আগে এটি করুন।

$ sudo netstat -plten |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1000       906726      25296/java      
tcp6       0      0 :::8009                 :::*                    LISTEN      1000       907503      25296/java      
tcp6       0      0 :::8080                 :::*                    LISTEN      1000       907499      25296/java      
$ ps 25296
  PID TTY      STAT   TIME COMMAND
25296 ?        Sl     0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom

'Ps' ব্যবহার করুন এবং প্রক্রিয়াটির সংখ্যা যা নেটস্ট্যাট রিপোর্ট করেছে


এই মত চেষ্টা করুন,

 sudo fuser -n tcp -k 8080

sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp

ফলাফল: 80 / টিসিপি: 1858 1867 1868 1869 1871

এক এক প্রক্রিয়ার হত্যা

হত্যা -9 1858


গিট বাশের সাথে অন্য উপায়:

stopProcessByPortNumber() {
port=":${1}"
portStrLine="$(netstat -ano | findstr LISTENING | findstr $port)"
processId="$(grep -oP '(\d+)(?!.*\d)' <<< $portStrLine)"
echo $processId
taskkill -PID $processId -F
}

টাস্ক পিআইডি পান এবং এটি হত্যা।

lsof -ti:8080 | xargs kill

পোর্ট 8080 শোনার যে কোনও প্রক্রিয়া তালিকাভুক্ত করতে:

lsof -i:8080

পোর্ট 8080 শোনা যে কোনো প্রক্রিয়া হত্যা করতে:

kill $(lsof -t -i:8080)

বা আরো হিংস্রভাবে:

kill -9 $(lsof -t -i:8080)

( -9 SIGKILL - terminate immediately/hard kill সিগন্যালটি বন্ধ করুন: কিল সিগন্যালগুলির তালিকা দেখুন এবং kill কমান্ডের -9 বিকল্পের উদ্দেশ্য কী? যদি কোনও সংকেত নির্দিষ্ট করার জন্য নির্দিষ্ট করা না থাকে তবে টিআরএম সংকেত উর -15 বা soft kill পাঠানো হয়, যা কখনও কখনও একটি প্রক্রিয়া হত্যা করতে যথেষ্ট নয়।)।


লিনাক্স : যদি আপনি পোর্টটি জানেন তবে আপনি এই কমান্ডটি ব্যবহার করতে পারেন:

netstat -plten | grep LISTEN | grep 8080

AIX :

netstat -Aan | grep LISTEN | grep 8080

তারপর আপনি প্রথম কলামটি গ্রহণ করুন (উদাহরণ: f100050000b05bb8) এবং নিম্নোক্ত কমান্ডটি চালান:

rmsock f100050000b05bb8 tcpcb

Kill প্রসেস.







kill-process