কমান্ড লাইন থেকে একটি নির্দিষ্ট "কমান্ড লাইন" দিয়ে একটি প্রক্রিয়া হত্যা করুন


24

একটি কমান্ড লাইন ইউটিলিটি আছে যা একটি নির্দিষ্ট কমান্ড লাইনের সাহায্যে সমস্ত প্রক্রিয়া মেরে ফেলে?

উদাহরণস্বরূপ "java.exe" নামক সমস্ত প্রক্রিয়া কমান্ড লাইনের সাথে হত্যা করে যেখানে "-jar selenium-server.jar" রয়েছে। প্রক্রিয়া এক্সপ্লোরারের মাধ্যমে এটি সম্ভব।


3
আমি বিশ্বাস করি যে নীচের দুটি উত্তরই ভুল, আপনি কেবল একটি .Exe প্রক্রিয়াটি কীভাবে হত্যা করবেন তা জিজ্ঞাসা করছেন না, আপনি একটি নির্দিষ্ট কমান্ড লাইন থাকা একটি .exe প্রক্রিয়াটিকে কীভাবে হত্যা করবেন তা জিজ্ঞাসা করছেন
অ্যাডমিনটেক

2
আপনি কি কেবল উইন্ডোজের কথা বলছেন? আপনার উদাহরণ এবং সরবরাহিত উত্তরগুলি আপনার মতো মনে হয় তবে আপনি এটি নির্দিষ্ট করেন নি।
নাথান ফেলম্যান 10

আপনি কীভাবে "প্রক্রিয়া এক্সপ্লোরারের মাধ্যমে এটি সম্ভব?" আমি সবেমাত্র একটি জাভা - জার <অ্যাপ্লিকেশন> চালু করেছি এবং এটি কেবল জাভা.এক্সই দেখায়
ভাট

আমি বাজি ধরছি তিনি / সে বোঝানো "sysinternals এক্সপ্লোরার প্রক্রিয়া"
আকিরা

অবশ্যই সিন্সটার্নালস প্রসেস এক্সপ্লোরার। আপনি এটি থেকে কমান্ড লাইন সহ চলমান প্রক্রিয়াগুলি সম্পর্কে প্রচুর তথ্য দেখতে পারবেন।
ripper234

উত্তর:


34

উইন্ডোজ এক্সপিতে আপনি ডাব্লুএমআই কনসোলটি সহজেই ডব্লুএমআইসি ইউিং করতে পারেন । কমান্ড প্রোপ থেকে নিম্নলিখিত টাইপ করুন:

wmic Path win32_process Where "CommandLine Like '%-jar selenium-server.jar%'" Call Terminate

সম্পাদনা:

বিমানের পোর্ট হিসাবে আমি পুরো নামটি (' পাথ উইন 32_প্রসেস ') দ্বারা 'নাম' প্রক্রিয়াটি প্রতিস্থাপন করেছি । প্রতিটি ওএসে এই উপনামটি ঘোষিত হতে পারে না।


1
+20 এটাই! দাম্মিত :) আমিও ডাব্লুএমআইসি অনুসরণ করছিলাম। তবে আমি এটি ডাব্লুএমআইসির কনসোলের মধ্যে থেকে করছি এবং লাইক প্রয়োগ করতে সক্ষম হচ্ছিলাম না। সিনট্যাক্স ত্রুটিগুলি পেয়েছিল, যা আমাকে '=' ব্যবহার করতে বাধ্য করেছিল, যার ফলে আমাকে পুরো কমান্ডলাইন ক্ষেত্রটি ইনপুট করতে বাধ্য করেছিল। LIKE ডাব্লুএমআইসি কনসোলের বাইরে কাজ করে জেনে খুশি lad এটা চিন্তা করা উচিত ছিল। আপনাকে কুদোস
একটি বামন

আমি কমান্ড লাইন থেকে কল যখন নিখুঁতভাবে কাজ করে। আমার টিমসিটি একটি প্রক্রিয়া শুরু করছে যা আমাকে বিল্ড শেষে শেষ করে ফেলতে হবে। কোনওভাবে যখন টিমসিটি দ্বারা ডেকে একই কমান্ড লাইনটি "কোনও তাত্পর্য উপলভ্য নয়" ফেরত দেয়, একই কমেড অনুলিপি করে / সেন্টিমিটারে আটকানো প্রক্রিয়াটি সঠিকভাবে হত্যা করে। কোন ধারণা কেন যে হবে?
মূল

3
সিমডিডি ফাইলগুলির জন্য সামান্য টিপস - সেন্টিমিডি ফাইল থেকে এই কমান্ডটি ব্যবহার করার জন্য আপনার '%'
অক্ষরকে

8

আপনি যদি উইন্ডোজ সংস্করণ ব্যবহার করেন যা এতে ডাব্লুএমআইসি কমান্ড রয়েছে। আপনি এটি চেষ্টা করতে পারেন

wmic path win32_process Where "Caption Like '%java.exe%' AND CommandLine Like '%selenium.jar%'" get ProcessId|more +1

more +1প্রথম হেডার ধারণকারী লাইন সরিয়ে ফেলবে এবং একা PID, ছাপে। যদি সেলেনিয়াম.জার যুক্ত একাধিক জাভা প্রক্রিয়া থাকে তবে এটি প্রতি লাইনে একটি পিআইডি ফিরিয়ে দেবে।


3

আমি বিশ্বাস করি আপনি পাওয়ার-শেল দিয়ে গেট-প্রক্রিয়া এবং স্টার্টইনফোর ব্যবহার করে এটি করতে পারেন you আপনার যে প্রক্রিয়াটি চান তার প্রক্রিয়া।

$procs = Get-Process java
foreach($proc in $procs) 
{
    if($proc.StartInfo.Arguments -contains "-jar selenium-server.jar")
    {
        kill $proc
    }
}

(আমি এটি পুরোপুরি পরীক্ষা করে দেখিনি, তবে এটি কার্যকর করার জন্য আপনার এটি টুইট করতে সক্ষম হওয়া উচিত)


আমি এটি নোটপ্যাড দিয়ে চেষ্টা করেছি, তবে স্টার্টিনফো.আরগমেন্টগুলি ফাঁকা ছিল।
js2010

3

পাওয়ারশেলে সহজ ওয়ান-লাইনার:

(Get-WmiObject win32_process -filter "Name='java.exe' AND CommandLine LIKE '%-jar selenium-server.jar%'").Terminate()

আমার সত্যিই কিছুটা সময় পিএস শেখা উচিত।
রিপার 234


1

আমি মস্তিষ্কের পাওয়ারশেল স্ক্রিপ্টের বিভিন্নতা ব্যবহার করি ।

এই আউটপুট কমান্ড লাইন এবং অন্যান্য তথ্য।

$processes = Get-WmiObject Win32_Process -Filter "name = 'java.exe'"
foreach($proc in $processes)
{
    if($proc.CommandLine.Contains("selenium-server.jar"))
    {
        Write-Host "stopping proccess $($proc.ProcessId) with $($proc.ThreadCount) threads; $($proc.CommandLine.Substring(0, 50))..."
        Stop-Process -F $proc.ProcessId
    } else
    {
        Write-Host "skipping proccess $($proc.ProcessId) with $($proc.ThreadCount) threads; $($proc.CommandLine.Substring(0, 50))..."
    }
}

0

আর একটি পাওয়ারশেলের প্রকরণ। এটি মূলত একই, সম্ভবত টাইপ করা এবং মনে রাখা সহজ। -ম্যাচ আসলে একটি নিয়মিত প্রকাশ করতে পারে।

get-wmiobject win32_process | where commandline -match selenium-server.jar 
  | remove-wmiobject

আপনি কি আপনার PS কমান্ড এবং অন্যদের মধ্যে পার্থক্যটি ব্যাখ্যা করতে পারেন?
বুর্গী

এটি মূলত একই। টাইপ এবং মনে রাখা সম্ভবত সহজ। -ম্যাচ আসলে একটি নিয়মিত প্রকাশ করতে পারে।
js2010

এটি অন্তর্ভুক্ত করার জন্য আপনার নিজের উত্তরটি সম্পাদনা করা উচিত ...
বুর্গি

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