ইতিমধ্যে একটি বন্দরে নির্ধারিত বর্তমান প্রক্রিয়া / অ্যাপ্লিকেশন আমি কীভাবে সরিয়ে ফেলব?
উদাহরণ স্বরূপ: localhost:8080
ইতিমধ্যে একটি বন্দরে নির্ধারিত বর্তমান প্রক্রিয়া / অ্যাপ্লিকেশন আমি কীভাবে সরিয়ে ফেলব?
উদাহরণ স্বরূপ: localhost:8080
উত্তর:
ধাপ 1:
Cmd.exe খুলুন (দ্রষ্টব্য: আপনার এটিকে প্রশাসক হিসাবে চালানোর প্রয়োজন হতে পারে তবে এটি সর্বদা প্রয়োজনীয় নয়), তারপরে নীচের কমান্ডটি চালান:
netstat -ano | findstr :PORT_NUMBER
(আপনি চান পোর্ট নম্বর দিয়ে PORT_NUMBER প্রতিস্থাপন করুন, তবে কোলন রাখুন)
লাল রঙের মধ্যে প্রদত্ত অঞ্চলটি পিআইডি (প্রক্রিয়া শনাক্তকারী) দেখায়। আপনার পছন্দসই পোর্টটি ব্যবহার করছে এমন প্রক্রিয়াটির পিআইডি সন্ধান করুন।
ধাপ ২:
এরপরে, নিম্নলিখিত কমান্ডটি চালান:
taskkill /PID PORT_NUMBER /F
(এবার কোনও কোলন নেই)
শেষ অবধি, "পদক্ষেপ 1" -তে কমান্ডটি পুনরায় চালিয়ে অপারেশন সফল হয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন। যদি এটি সফল হয় তবে আপনাকে সেই বন্দর নম্বরটির জন্য আর কোনও অনুসন্ধানের ফলাফল দেখতে পাওয়া উচিত নয়।
taskkill //PID 12552 //F
taskkill /PID PORT_NUMBER /F
পদক্ষেপ 1 ( কবিন্দুবিজে রচিত স্বীকৃত উত্তরে এটি ):
netstat -ano | findstr :yourPortNumber
পদক্ষেপ 2 এ পরিবর্তন করুন:
tskill typeyourPIDhere
দ্রষ্টব্য : taskkill
কিছু গিট বাশ টার্মিনালে কাজ করছে না
উইন্ডোজ 10 ডিফল্ট সরঞ্জাম সহ:
প্রশাসক হিসাবে উইন্ডোজ পাওয়ারশেল খুলুন
8080 পোর্টের জন্য পিআইডি (প্রসেসআইডি) সন্ধান করুন:
netstat -aon | findstr 8080
টিসিপি 0.0.0.0:8080 0.0.0.0:07 77777 তালিকা করুন
জম্বি প্রক্রিয়াটি হত্যা করুন:
taskkill /f /pid 77777
যেখানে "77777" আপনার পিআইডি
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
-> উইন্ডোটি উন্মুক্ত রাখুন
আপনি যদি গিটব্যাশ ব্যবহার করছেন
প্রথম ধাপ:
netstat -ano | findstr :8080
ধাপ দুই:
taskkill /PID typeyourPIDhere /F
( /F
জোর করে প্রক্রিয়াটি সমাপ্ত করে)
ইন উইন্ডোজ PowerShell সংস্করণ 1 বা পরে বন্দর 3000 ধরনের উপর একটি প্রক্রিয়া বন্ধ করতে:
স্টপ-প্রসেস (, (নেটস্ট্যাট -ানো | সন্ধান: 3000) .স্প্লিট () | ফোরচ {$ [$ দৈর্ঘ্য -১]]}) -ফার্স
@ এমরগানপিডিএক্স এর পরামর্শ অনুসারে এখানে আরও পাওয়ারশেল-ইশ, আরও ভাল সংস্করণ:
স্টপ-প্রসেস -আইডি (নেট-নেটস্কিপশন সংযোগ-লোকালপোর্ট 3000)
'Stop-Process' is not recognized as an internal or external command,
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
কমান্ড লাইনে ব্যবহারের জন্য:
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
আপনি যদি ইতিমধ্যে পোর্ট নম্বরটি জানেন, তবে সম্ভবত প্রক্রিয়াটিতে একটি সফ্টওয়্যার সমাপ্তি সংকেত প্রেরণ করা যথেষ্ট হবে (SIGTERM):
kill $(lsof -t -i :PORT_NUMBER)
lsof -nt -i4TCP:9001
।
উইন্ডোজ ব্যবহারকারীদের জন্য, আপনি সহজে ব্যবহারের অধীনে পোর্টগুলি মারতে কারারপোর্টস সরঞ্জামটি ব্যবহার করতে পারেন:
আমি উইন্ডোজে চিড়িয়াখানা চালাচ্ছিলাম এবং চিড়িয়াখানা-স্টপ.শ ব্যবহার করে 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.
আপনি যদি উইন্ডোজ টার্মিনাল ব্যবহার করেন তবে হত্যার প্রক্রিয়াটি কিছুটা কম ক্লান্তিকর হতে পারে। আমি উইন্ডোজ টার্মিনালটি ব্যবহার করে এসেছি এবং kill PID
আমার পক্ষে বন্দরে প্রসেসগুলি মেরে ফেলার জন্য ঠিকঠাক কাজ করেছি কারণ নতুন উইন্ডোজ টার্মিনাল নির্দিষ্ট কিছু ব্যাশ কমান্ড সমর্থন করে। উদাহরণ স্বরূপ:kill 13300
সুতরাং, সম্পূর্ণ প্রক্রিয়াটি এর মতো দেখাবে-
netstat -ano | findstr :PORT
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
। আমি খুঁজে যদি এখানে পোস্ট।
যদি আপনি পাইথনটি ব্যবহার করে এটি করতে চান: চেকটি নির্দিষ্ট পোর্টে শোনা যাচ্ছে এমন প্রক্রিয়াটি মেরে ফেলা সম্ভব কি উদাহরণস্বরূপ 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
নীচের কমান্ডটি ব্যবহার করে আমরা IIS পুনরায় চালু করে এড়াতে পারি:
IISRESET
গিটব্যাশ ব্যবহার করে একটি লাইন সমাধান :
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