উইন্ডোজটিতে লোকালহোস্টের একটি বন্দর ব্যবহার করে আমি কীভাবে প্রক্রিয়াটিকে মেরে ফেলি?


489

ইতিমধ্যে একটি বন্দরে নির্ধারিত বর্তমান প্রক্রিয়া / অ্যাপ্লিকেশন আমি কীভাবে সরিয়ে ফেলব?

উদাহরণ স্বরূপ: localhost:8080

উত্তর:


1051

ধাপ 1:

Cmd.exe খুলুন (দ্রষ্টব্য: আপনার এটিকে প্রশাসক হিসাবে চালানোর প্রয়োজন হতে পারে তবে এটি সর্বদা প্রয়োজনীয় নয়), তারপরে নীচের কমান্ডটি চালান:

netstat -ano | findstr :PORT_NUMBER

(আপনি চান পোর্ট নম্বর দিয়ে PORT_NUMBER প্রতিস্থাপন করুন, তবে কোলন রাখুন)

লাল রঙের মধ্যে প্রদত্ত অঞ্চলটি পিআইডি (প্রক্রিয়া শনাক্তকারী) দেখায়। আপনার পছন্দসই পোর্টটি ব্যবহার করছে এমন প্রক্রিয়াটির পিআইডি সন্ধান করুন।

ধাপ ২:

এরপরে, নিম্নলিখিত কমান্ডটি চালান:

taskkill /PID PORT_NUMBER /F

(এবার কোনও কোলন নেই)

শেষ অবধি, "পদক্ষেপ 1" -তে কমান্ডটি পুনরায় চালিয়ে অপারেশন সফল হয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন। যদি এটি সফল হয় তবে আপনাকে সেই বন্দর নম্বরটির জন্য আর কোনও অনুসন্ধানের ফলাফল দেখতে পাওয়া উচিত নয়।


কাজ করছে না. স্থির প্রক্রিয়াটি প্রদর্শিত হচ্ছে
হার্ডিক মান্ডানকা

16
নিখুঁতভাবে কাজ করা। আমার ক্ষেত্রে টমক্যাট 8080 বন্দরে চলছে এবং আমার আবার আমার স্প্রিং অ্যাপ্লিকেশন চালু করা দরকার launch i.imgur.com/aVwSYvR.png আপনাকে অনেক ধন্যবাদ
হুগো এলএম

16
টাস্ককিল চলাকালীন আমাকে পালানোর চরিত্রগুলিতে প্রবেশ করতে হয়েছিল:taskkill //PID 12552 //F
রবার্ট

1
গৃহীত উত্তর সেবার জন্য কার্যকর হবে না যা ব্যর্থতায় পুনরায় চালু করার জন্য সেট আপ করা হয়েছে (এটি লিনাক্স নয়)
নিউরেটিন

1
আমি মনে করি আপনি PID_NUMBER বোঝাতে চেয়েছিলেন এবং PORT_NUMBER এর মধ্যে নয়taskkill /PID PORT_NUMBER /F
মার্সিন কুলিক

132

পদক্ষেপ 1 ( কবিন্দুবিজে রচিত স্বীকৃত উত্তরে এটি ):

netstat -ano | findstr :yourPortNumber

পদক্ষেপ 2 এ পরিবর্তন করুন:

tskill typeyourPIDhere 

দ্রষ্টব্য : taskkillকিছু গিট বাশ টার্মিনালে কাজ করছে না


1
আমার জন্য এটি খুঁজে
পেল

1
@ টজভিগ্রিগরি কায়দানভ আপনি কোন সমস্যার মুখোমুখি হচ্ছেন?
afsarkhan10182

1
ধন্যবাদ, এটি টাস্কিলকে এসকিলে পরিবর্তন করে কাজ করেছিল
মোঃ শোয়েব আলম

1
এটি আমার জন্য কাজ করা সমাধান। আমি জিআইটি ব্যাশ ব্যবহার করছি।
dxhans5

1
প্রথম কমান্ডের আউটপুটটি বামুকের কাছে দিয়ে কী এটি করা যায়?
জেমস 21

114

উইন্ডোজ 10 ডিফল্ট সরঞ্জাম সহ:

  • প্রথম ধাপ:

প্রশাসক হিসাবে উইন্ডোজ পাওয়ারশেল খুলুন

  • ধাপ দুই:

8080 পোর্টের জন্য পিআইডি (প্রসেসআইডি) সন্ধান করুন:

netstat -aon | findstr 8080

টিসিপি 0.0.0.0:8080 0.0.0.0:07 77777 তালিকা করুন

  • পদক্ষেপ তিন:

জম্বি প্রক্রিয়াটি হত্যা করুন:

taskkill /f /pid 77777

যেখানে "77777" আপনার পিআইডি


1
কীভাবে প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে করা যায় এবং এই দুটি কমান্ডকে এক ব্যাট ফাইলে একত্রিত করতে যদি সেমিডি আউটপুট দেখার কোনও সম্ভাবনা না থাকে এবং তারপরে ম্যানুয়ালি নতুন কমান্ড লেখেন?
Serob_b

3
@ সরব_বি set /p port="Enter port: "-> ইনপুট পোর্ট FOR /F "tokens=5" %%T IN ('netstat -aon ^| findstr %port% ') DO ( SET /A ProcessId=%%T) &GOTO SkipLine :SkipLine-> পিআইডি কে পরিবর্তনশীল হিসাবে উত্তোলন করে -> টাস্ককে taskkill /f /pid %ProcessId%হত্যা করে cmd /k -> উইন্ডোটি উন্মুক্ত রাখুন
বিক্রান্ত

94

আপনি যদি গিটব্যাশ ব্যবহার করছেন

প্রথম ধাপ:

netstat -ano | findstr :8080

ধাপ দুই:

taskkill /PID typeyourPIDhere /F 

( /Fজোর করে প্রক্রিয়াটি সমাপ্ত করে)


ডাবল স্ল্যাশ আমার পক্ষে কাজ করে নি
kylexy1357

2
@ kylexy1357 একটি একক স্ল্যাশ দিয়ে চেষ্টা করুন। "ডাবল স্ল্যাশ" হ'ল একটি পালানোর চরিত্র যা এর আগে /, যা কিছু শেলের জন্য প্রয়োজন হয় না
রবার্ট

27

ইন উইন্ডোজ PowerShell সংস্করণ 1 বা পরে বন্দর 3000 ধরনের উপর একটি প্রক্রিয়া বন্ধ করতে:

স্টপ-প্রসেস (, (নেটস্ট্যাট -ানো | সন্ধান: 3000) .স্প্লিট () | ফোরচ {$ [$ দৈর্ঘ্য -১]]}) -ফার্স


@ এমরগানপিডিএক্স এর পরামর্শ অনুসারে এখানে আরও পাওয়ারশেল-ইশ, আরও ভাল সংস্করণ:

স্টপ-প্রসেস -আইডি (নেট-নেটস্কিপশন সংযোগ-লোকালপোর্ট 3000)


'Stop-Process' is not recognized as an internal or external command,
সবুজ

3
আমি দেখতে পাচ্ছি যে এটি কাজ করে:Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
মরগানপডেক্স

1
@ গ্রীন আপনার উইন্ডোজ পাওয়ারশেলের কমান্ডটি চালানো দরকার
টর্ডর্ম

1
প্রথমটি ত্রুটিযুক্ত, সেকোনফ আমার পক্ষে কাজ করেছে
টম

24

কমান্ড লাইনে ব্যবহারের জন্য:

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a

ব্যাট-ফাইল ব্যবহারের জন্য:

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a

1
আপনি এটি একটি .bat এ করতে চাইলে%% এর জন্য% a প্রতিস্থাপন করুন
মহেশ নারওয়াদে

23

আপনি যদি ইতিমধ্যে পোর্ট নম্বরটি জানেন, তবে সম্ভবত প্রক্রিয়াটিতে একটি সফ্টওয়্যার সমাপ্তি সংকেত প্রেরণ করা যথেষ্ট হবে (SIGTERM):

kill $(lsof -t -i :PORT_NUMBER)

আপনি যদি জানেন যে বন্দরটি আইপিভি 4 ব্যবহার করছে আপনি এটিও করতে পারেন lsof -nt -i4TCP:9001
জোশ হাবদাস


10

আমি উইন্ডোজে চিড়িয়াখানা চালাচ্ছিলাম এবং চিড়িয়াখানা-স্টপ.শ ব্যবহার করে 2181 বন্দরে চিড়িয়াখানা থামাতে পারিনি , সুতরাং টাস্ককিলের জন্য এই ডাবল স্ল্যাশ "//" পদ্ধতিটি চেষ্টা করেছিলাম। এটা কাজ করেছে

     1. netstat -ano | findstr :2181
       TCP    0.0.0.0:2181           0.0.0.0:0              LISTENING       8876
       TCP    [::]:2181              [::]:0                 LISTENING       8876

     2.taskkill //PID 8876 //F
       SUCCESS: The process with PID 8876 has been terminated.

6

আপনি যদি উইন্ডোজ টার্মিনাল ব্যবহার করেন তবে হত্যার প্রক্রিয়াটি কিছুটা কম ক্লান্তিকর হতে পারে। আমি উইন্ডোজ টার্মিনালটি ব্যবহার করে এসেছি এবং kill PIDআমার পক্ষে বন্দরে প্রসেসগুলি মেরে ফেলার জন্য ঠিকঠাক কাজ করেছি কারণ নতুন উইন্ডোজ টার্মিনাল নির্দিষ্ট কিছু ব্যাশ কমান্ড সমর্থন করে। উদাহরণ স্বরূপ:kill 13300

সুতরাং, সম্পূর্ণ প্রক্রিয়াটি এর মতো দেখাবে-

  • উইন্ডোজ টার্মিনাল খুলুন
  • আপনি যে প্রক্রিয়াগুলি হত্যা করতে চাইছেন সেই বন্দরে চলছে এমন প্রক্রিয়াগুলি দেখানোর জন্য নিম্নলিখিত কমান্ডটি টাইপ করুন। netstat -ano | findstr :PORT
  • প্রক্রিয়াটি হত্যা করতে নিম্নলিখিত টাইপ করুন Type kill PID

উদাহরণ স্বরূপ:

PS C:\Users\username> netstat -ano | findstr :4445
  TCP    0.0.0.0:4445           0.0.0.0:0              LISTENING       7368
  TCP    [::]:4445              [::]:0                 LISTENING       7368
PS C:\Users\username> kill 7368
PS C:\Users\username> netstat -ano | findstr :4445
PS C:\Users\username>

দেখুন যে আমি বন্দরে প্রক্রিয়াগুলি তালিকাভুক্ত করার জন্য প্রথম কমান্ডটি টাইপ করেছি এটি খালি ফিরে এসেছে। তার মানে এখন সমস্ত প্রক্রিয়া মারা গেছে।


আমি এটির কাজটি জানি কারণ এটি পরীক্ষা করেছি, আমি এর চারপাশে ডকুমেন্টেশন সন্ধান করার চেষ্টা করছি, আপনার কি কিছু আছে?
ড্যানস্টার্নস

@ ডানস্টার্নস, আমি এখনও পর্যন্ত এটি খুঁজে পেয়েছি! ডকস.মাইক্রোসফট.ওন
উইন্ডোস /

আপনার সময়ের জন্য ধন্যবাদ, এটি আমি যে পৃষ্ঠায় সন্ধান করছি তা পুরোপুরি নয়, যেমন টার্মিনালে প্রদত্ত সমস্ত ফাংশন সহ একটি পৃষ্ঠা kill। আমি খুঁজে যদি এখানে পোস্ট।
ড্যানস্টার্নস

1
আমি এখন পর্যন্ত এ সম্পর্কে খুব বেশি কিছু পাইনি। কিছু খুঁজে পেলে পোস্ট করুন।
অলসাইফার

4

আপনি ব্যাট ফাইল চালিয়ে করতে পারেন:

@ECHO OFF                                                                              
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine                                                   
:SkipLine                                                                              
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE

4

যদি আপনি পাইথনটি ব্যবহার করে এটি করতে চান: চেকটি নির্দিষ্ট পোর্টে শোনা যাচ্ছে এমন প্রক্রিয়াটি মেরে ফেলা সম্ভব কি উদাহরণস্বরূপ 8080?

সুমনকের উত্তরটি দুর্দান্তভাবে কাজ করে। আমি এখানে তার কোড পুনরাবৃত্তি:

from psutil import process_iter
from signal import SIGTERM # or SIGKILL

for proc in process_iter():
    for conns in proc.connections(kind='inet'):
        if conns.laddr.port == 8080:
            proc.send_signal(SIGTERM) # or SIGKILL
            continue

এটি এমন একটি সকেটের জন্য কাজ করেছে যা গুগল ক্লাউডেও একটি নির্দিষ্ট বন্দর নম্বর ব্যবহার করে! ধন্যবাদ একটি টন
পিসি

0

নীচের কমান্ডটি ব্যবহার করে আমরা IIS পুনরায় চালু করে এড়াতে পারি:

IISRESET

0

গিটব্যাশ ব্যবহার করে একটি লাইন সমাধান :

 tskill `netstat -ano | grep LISTENING | findstr :8080 | sed -r 's/(\s+[^\s]+){4}(.*)/\1/'`

আপনার সার্ভার যে পোর্টটি শুনছে তার সাথে 8080 প্রতিস্থাপন করুন

আপনার যদি এটি প্রায়শই ব্যবহার করার প্রয়োজন হয় তবে আপনার ~/.bashrcফাংশনে যুক্ত করার চেষ্টা করুন :

function killport() {
        tskill `netstat -ano | findstr LISTENING | findstr :$1 | sed -r 's/^(\s+[^\s]+){4}(\d*)$/\1/'`
}

এবং সহজভাবে চালান

killport 8080
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.