লিনাক্স: যুক্তিগুলির ভিত্তিতে কিল প্রক্রিয়া


54

কমান্ড লাইনের যুক্তিগুলির ভিত্তিতে আমি কোনও প্রক্রিয়া কীভাবে হত্যা করতে পারি? killall, pgrepএবং pkillকেবল প্রক্রিয়া নামের উপর ভিত্তি করে কাজ করে বলে মনে হচ্ছে।

জাভা ভার্চুয়াল মেশিনের অভ্যন্তরে চলমান বেশ কয়েকটি অ্যাপ্লিকেশনগুলির মধ্যে পার্থক্য অর্জন করার জন্য আমার এটি দরকার, যেখানে javaতাদের সবার প্রক্রিয়া নাম এবং প্রকৃত অ্যাপ্লিকেশন নামটি কমান্ড লাইন আর্গুমেন্টগুলি দেখে খুঁজে পাওয়া যাবে।

এটি ps aux | grep myapp.jarআউটপুট থেকে ম্যানুয়ালি পিডটি মেরে ম্যানুয়ালি করা যেতে পারে তবে আমি স্বয়ংক্রিয়ভাবে কিছু সমমানের একটি আদেশ চাই।

উত্তর:


69

pgrep/ pkillএকটি -fপতাকা নিতে । manপৃষ্ঠা থেকে :

-f    The pattern is normally only matched against the process name.
      When -f is set, the full command line is used.

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

$ sleep 30& sleep 60&
[1] 8007
[2] 8008

$ pkill -f 'sleep 30'
[1]  - terminated  sleep 30

$ pgrep sleep
8008

+1, তবে আমার ব্যাশ ৪.১.৫ একটি এম্পারস্যান্ডের পরে কোলনের পক্ষে কাজ করে না (উদাহরণস্বরূপ প্রথম লাইনে) ... bash: syntax error near unexpected token ';'... যখন এম্পারস্যান্ড অনুসরণ করা হয় তখন এটি কোনও ক্ষেত্রে বিবৃতিতে কাজ করে ;;... সম্ভবত আপনি একটি আলাদা শেল (?) ব্যবহার করছেন
পিটার.ও

@ jw013 আমি আসলে ব্যবহার করছি zsh, যা আমার ব্যবহৃত বাক্য গঠন সমর্থন করে supports
এড়িয়ে

@ মিশেলমরোজেক ঠিক আছে এনভিএম তখন :) আমি ভাবছি যদি ইউনিক্স.এসই-র zshঅন্য কোথাও ব্যবহারকারীর সংখ্যা বেশি থাকে - আমি কেবল zshএখানে ব্যবহারকারী খুঁজে পাই বলে মনে হচ্ছে ।
jw013

4

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


4

argumentনীচে একটি নিয়মিত অভিব্যক্তি দিয়ে প্রতিস্থাপন করুন যা অবশ্যই কোনও প্রক্রিয়াটির সম্পূর্ণ কমান্ড লাইনের অনেকাংশে:

kill `ps -eo pid,args --cols=10000 | awk '/argument/ && $1 != PROCINFO["pid"] { print $1 }'`

0

আপনার যদি পিল বা অন্য কিছু না থাকে তবে কেবল প্রো / / [1-9] * / সেমিডলাইন ব্যবহার করুন

grep -a myapp.jar /proc/[1-9]*/cmdline|tr '\0' ' '|grep -v grep|awk -F/ '{print $3}'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.