একটি নামের সাথে মিলে সমস্ত প্রক্রিয়া কীভাবে হত্যা করবেন?


260

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

ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031

যোগ | sh -xআপনার কমান্ড লাইন বাকি পরে?
জোনাথন লেফলার

7
কখনও কখনও kill -9কোনও প্রক্রিয়া দেখুন [প্রক্রিয়া পরিচালনা] [1] [1]: mywiki.wooledge.org/… ...
ফ্রেডরিক

উপরোক্ত মন্তব্যে যোগ করা যে কেবলমাত্র হত্যা -9 একটি খারাপ ধারণা নয় এটি হ'ল আপনিও তাদের নামের মাধ্যমে একাধিক প্রক্রিয়া হত্যা করার চেষ্টা করছেন are কোনও প্রক্রিয়ার নাম সম্পর্কে অনন্য কিছুই নেই এবং তাই সনাক্তকরণের জন্য খারাপ প্রার্থী।
রাউল-

এটা কি amarokxপ্রক্রিয়া মেরে ফেলবে ? আমি vi পাই, এটি মেরে ফেলছে supervisorctlযা শব্দটিতে `vi রয়েছে।
গাঙ্ক

4
ব্যবহার না করার বিষয়ে সেই নিবন্ধটি -9বেশ অস্বাস্থ্যকর - কেন লোকেরা এটি ব্যবহার করবেন না সে সম্পর্কে আরও ভাল কোনও তথ্য আছে? এটি কেবল "না, এবং যারা এটি ব্যবহার করে তাদের ফায়ার করে" বলে; তবে আমি অন্য কোথাও যা দেখেছি তা kill -9 {pid}হ'ল এভাবেই কীভাবে কিছু মারতে হয় ...
ওয়ান্ডারসন

উত্তর:


437

থেকে man 1 pkill

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

যার অর্থ, উদাহরণস্বরূপ, যদি আমরা এই লাইনগুলি দেখতে পাই ps aux:

apache   24268  0.0  2.6 388152 27116 ?        S    Jun13   0:10 /usr/sbin/httpd
apache   24272  0.0  2.6 387944 27104 ?        S    Jun13   0:09 /usr/sbin/httpd
apache   24319  0.0  2.6 387884 27316 ?        S    Jun15   0:04 /usr/sbin/httpd

আমরা পিকিল -fবিকল্পটি ব্যবহার করে তাদের সকলকে হত্যা করতে পারি :

pkill -f httpd

1
আমি বুঝতে পারি যে এটি এই প্রশ্নের বিষয়টিকে সরিয়ে দেয় না, তবে এটি আপনি যা করার চেষ্টা করছেন সেটি করার একটি বিকল্প এবং সংক্ষিপ্ততর পদ্ধতি প্রদর্শন করে।
টিম বিলাওয়া

19
অতিরিক্ত শক্তি -9জন্য, শেষ যোগ করুন !
mlissner

এটা কি httpdxপ্রক্রিয়া মেরে ফেলবে ? আমি vi পাই, এটি মেরে ফেলছে supervisorctlযা শব্দটিতে `vi রয়েছে।
গাঙ্ক

জট্টিল - উবুন্টু 18.04.1 LTS
Salathiel Genèse

জন্য কেস-অবশ ম্যাচ ব্যবহার -i, মত pkill -fi wine। আগে এবং পরে যাচাই করতে, ব্যবহার করুন ps uax | grep -i wine
ভলকান রেভেন

207
ps aux | grep -ie amarok | awk '{print $2}' | xargs kill -9 

xargs (1): xargs - যুক্তি তালিকা তৈরি করুন এবং ইউটিলিটি সম্পাদন করুন। আপনি যখন এর মতো killবা অন্য কোনও বিষয়ে তর্ক করতে চাইলে সহায়ক ls


3
Xargs উল্লেখ করার জন্য পয়েন্টস - এই সমস্ত pgrep / pkill স্টাফ সব খুব ভাল, তবে xargs একটি সাধারণ উদ্দেশ্য সরঞ্জাম, এবং প্রতিটি লিনাক্স / ইউনিক্সের স্ট্যান্ডার্ড।
ক্রিশডনে

4
"হত্যা: এ জাতীয় কোনও প্রক্রিয়া নেই"
সেরিন

3
নিশ্চিত কারণ এটি গ্রেপ প্রক্রিয়াটিকেও মারতে চেষ্টা করছে যা ইতিমধ্যে শেষ হয়েছে। এটা ঠিক করা উচিত।
কোস্তি মুরারু

6
গ্রেপ প্রক্রিয়া ক্যাপচার এড়ানোর জন্য একটি ছোট কৌশল আছে: পিএস অক্স | গ্রেপ-এ [এ] মেরোক | awk '{মুদ্রণ $ 2}' | xargs কিল -9
আরক্রস

8
আপনি গ্রিপ ফিল্টার করার জন্য আরও একটি গ্রেপ কল যুক্ত করতে পারেন (আমি পড়তে / মনে রাখতে এটি সহজ মনে করি) ps aux | grep -ie amarok | grep -v grep | awk '{print $2}' | xargs kill -9 ( grep -vএর জন্য grep --invert)
ড্রিফ্যাচ্যাচার

47

ব্যবহার pgrep

kill -9 $(pgrep amarok)

26
এমনকি pkill -9 amarok
এলিগান্টার

1
পিকিল আরও পাইপ বা প্রসেস তৈরি না করেই "<ওয়ার্ড> শব্দ" সমেত প্রতিটি প্রক্রিয়া হ্যান্ডল করে hand Pgrep এর প্রয়োজনীয়তা দূর করতে পুরো প্রক্রিয়া নাম অনুসন্ধানের জন্য -f বিকল্পটি দেখুন।
টিম বিলাওয়া

2
ডিফল্টরূপে পিকিল প্রক্রিয়া নামের সাথে আংশিক মিলের অনুমতি দেয় Be এই আদেশটি যদি অস্তিত্ব থাকে তবে আমরোক 2 কে হত্যা করবে। সঠিক নাম উল্লেখ করতে চাইলে -x অথবা -f ব্যবহার করুন।
ব্যবহারকারী 79878

যদি না pgrep জন্য ম্যাচ হয় এটা ব্যর্থ হবে
alfredocambera

পুরো নাম ম্যাচ ব্যবহারের জন্যkill -9 $(pgrep -f amarok)
সিনটিক

27

এটি করার নিরাপদ উপায় হ'ল:

pkill -f amarok

1
এটি যুক্ত করতে আমি -lপতাকাটি যুক্ত করেছি। আমি আসলে কিছুটা আলাদা pkillকরে pkill -flরেখেছি যাতে আমি এরকম কিছু চালাতে পারি pkill jbossএবং এটি সবেমাত্র প্রক্রিয়াটি ছুঁড়ে মারবে।
ন্যান্ড

এটা কি amarokxপ্রক্রিয়া মেরে ফেলবে ? আমি vi পাই, এটি মেরে ফেলছে supervisorctlযা শব্দটিতে `vi রয়েছে।
গাঙ্ক

এটি শীর্ষের (টিমের) উত্তর থেকে কীভাবে আলাদা? শুধু উদাহরণের নামের সাথে মেলে, অন্যথায় অভিন্ন দেখাচ্ছে? @ndland pkill: invalid option -- 'l'- প্রোপ্লস -এনজি 3.3.12 থেকে পিল
জেন 2050

18

আমি মনে করি এই কমান্ড কিলল আপনার প্রয়োজন ঠিক তাই। কমান্ডটি "নাম অনুসারে কিল প্রসেস" হিসাবে বর্ণনা করা হয়েছে। এটি ব্যবহার করা সহজ example উদাহরণস্বরূপ

killall chrome

এই কমান্ডটি ক্রোমের সমস্ত প্রক্রিয়া মেরে ফেলবে e এখানে কিলাল কমান্ড সম্পর্কে একটি লিঙ্ক

http://linux.about.com/library/cmd/blcmdl1_killall.htm

আশা করি এই আদেশটি আপনাকে সহায়তা করতে পারে।


এটি কেবল নামের সাথে মেলে, সম্পূর্ণ কমান্ড লাইন নয়। অবশ্যই ps auxএর ফলাফল খুঁজে পাওয়ার মতো নয়
Xen2050

12

pkill -x প্রক্রিয়াটির নামটি হুবহু মিলে।

pkill -x amarok

pkill -f অনুরূপ তবে একটি নিয়মিত প্রকাশের প্যাটার্নের অনুমতি দেয়।

মনে রাখবেন যে অন্য কোনও প্যারামিটারের (উদাহরণস্বরূপ -x, -f) প্যাকিল প্রক্রিয়া নামের উপর আংশিক মিলের অনুমতি দেবে। সুতরাং "পিলিল আমরোক" আমরোক, আমারোকবানা, কলামানাটক ইত্যাদি হত্যা করবে

ইচ্ছে করে -x ডিফল্ট আচরণ!


এটা কি amarokxপ্রক্রিয়া মেরে ফেলবে ? আমি vi পাই, এটি মেরে ফেলছে supervisorctlযা শব্দটিতে `vi রয়েছে।
গাঙ্ক

@ গ্যাঙ্ক, হ্যাঁ, কোনও জায়গায় "আমারোক" সহ যে কোনও প্রক্রিয়ার নাম।
ব্যবহারকারী 79878

আমরোকক্সের পরিবর্তে কেবল আমরোককে কীভাবে হত্যা করা যায়?
গাঙ্ক

1
@ গাঙ্ক, -x পতাকা।
pkill

4

যদি আপনি কোনও কমান্ডের আউটপুট নির্বাহ করতে চান তবে আপনি এটি ভিতরে রেখে দিতে পারেন $(...)তবে আপনার নির্দিষ্ট কাজের জন্য killallঅ্যান্ড pkillকমান্ডগুলি একবার দেখুন।


3

আপনি পিছনে টিক্সের সাহায্যে বা তার ভিতরে putting () রেখে প্রতিটি জিনিসকে একটি উপ-প্রক্রিয়া হিসাবেও মূল্যায়ন করতে পারেন:

`ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'`

 $(ps aux | grep -ie amarok | awk '{print "kill -9 " $2}')     

3

ব্যবহার করে দেখুন খুন -s 9ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}' 11 নভেম্বরের প্রক্রিয়াগুলিকে অক্ষম করতে বা হত্যা 9 -s ps -ef |grep amarok|grep -v grep | awk '{print $2}' প্রসেস যে শব্দ Amarok ধারণ হত্যা করার জন্য


0

এক্সিকিউটেবল ফাইলে কমান্ড যুক্ত করা, + এক্স অনুমতি সেট করা এবং তারপরে এক্সিকিউট করা?

ps aux | grep -ie amarok | awk '{print "kill -9 " $2}' > pk;chmod +x pk;./pk;rm pk

-1

আপনি যদি সাইগউইন বা এমন কোনও ন্যূনতম শেল killallব্যবহার করেন যা আপনার অভাব হয় তবে আপনি কেবল এই স্ক্রিপ্টটি ব্যবহার করতে পারেন:

killall.sh - প্রক্রিয়া নাম দ্বারা হত্যা।

#/bin/bash
ps -W | grep "$1" | awk '{print $1}' | xargs kill --

ব্যবহার:

$ killall <process name>

আমি পাচ্ছিkill: invalid argument f
রোজটেক্স

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