নির্দিষ্ট আর্গুমেন্টের সাহায্যে কোনও প্রক্রিয়া সন্ধান এবং হত্যা করার জন্য স্ক্রিপ্টের বাশ?


17

আমি এমন একটি স্ক্রিপ্ট চাই যা এর উদাহরণগুলিকে মেরে sshফেলবে যার মধ্যে -D আর্গুমেন্ট (একটি স্থানীয় প্রক্সি স্থাপন করা) দিয়ে চালানো হয়েছে।

ম্যানুয়ালি, আমি করি ps -A | grep -i ssh, -ডি সহ kill -9 {id}প্রতিটি উদাহরণ (গুলি) সন্ধান করুন ।

তবে বাশ স্ক্রিপ্ট আকারে এটি দেখতে কেমন?

(আমি ম্যাক ওএস এক্সে আছি তবে এর মাধ্যমে কোনও প্রয়োজনীয় কমান্ড ইনস্টল করব port)


ম্যাক ওএস এক্স-এ pgrep এবং pkill বিকল্পগুলি দেখুন ? । pgrepএবং pkillসোলারিস এবং লিনাক্সের অধীনে নাম অনুসারে প্রক্রিয়াগুলি নির্ভরযোগ্যভাবে খুঁজে পেতে বা হত্যা করার কমান্ড।
— গিলস 8'12

উত্তর:


26

রান করুন pgrep -f "ssh.*-D"এবং দেখুন যে এটি সঠিক প্রক্রিয়া আইডিটি দেয় কিনা returns যদি এমন হয়, কেবল পরিবর্তন pgrepকরতে pkillএবং একই অপশন এবং প্যাটার্ন রাখা

এছাড়াও, আপনার kill -9একেবারে প্রয়োজনীয় না হলে আপনি ওরফে সিগিল ব্যবহার করবেন না কারণ প্রোগ্রামগুলি প্রস্থান করার আগে সেগুলি পরিষ্কার করার জন্য সিগ্কিলকে আটকাতে পারে না। আমি কেবল kill -9প্রথম চেষ্টা করার পরে -1 -2এবং ব্যবহার করি -3।


আপনার প্রত্যেকটির জন্য একটি forলুপ হিসাবে কিলকে পুনরায় সংজ্ঞায়িত করা উচিত ;)kill -ii
— সিমাস

1
pgrepওএসএক্সে নেটিভ নয়, আপনাকে এটি তৃতীয় পক্ষের কাছ থেকে নেওয়া উচিত। বিষয়টির পূর্ববর্তী থ্রেডে প্রস্তাব এবং বিকল্প রয়েছে।
— গিলস 21:521-

জীবিত মানুষ, আমি যত বেশি 'নিক্স ব্যবহার করি, তত বেশি ভালোবাসি :) এর জন্য ধন্যবাদ!
— javamonkey79

pgrep এবং pkill ওএস এক্স 10.8 (পর্বত সিংহ) এবং তারপরে উপলব্ধ। আপেল.ব্লোগোভারফ্লো.কম
— পিটার হ্যানলি

-aপতাকাটি যুক্ত করা কার্যকর হতে পারে pgrepযা এটি কেবল প্রক্রিয়া আইডিই নয় কমান্ডটি (যুক্তি সহ) মুদ্রণ করে। এইভাবে যাচাই করা খুব সহজ যে কেবল পছন্দসই প্রক্রিয়াগুলি মিলেছে।
— লুয়েটর


0

তথ্য সংগ্রহের জন্য আপনি প্রোক ফাইল সিস্টেমটি ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:

for proc in $(grep -irl "ssh.*-D" /proc/*/cmdline | grep -v "self"); do if [ -f $proc ]; then cat $proc && echo ""; fi; done

এটি নিখুঁত নয়, আপনি আরও একচেটিয়া রেজেক্স চাইবেন (বিশেষত যদি আপনি প্রক্রিয়া নিধন করছেন) তবে echo $proc | awk -F'/' '{ print $3 }'আপনাকে প্রক্রিয়াটির পিআইডি প্রদর্শন করবে (এস)।


1
ওএসএক্সের নেই /proc। এটি করার জন্য ইতিমধ্যে এখানে একটি শক্ত সরঞ্জাম রয়েছে, যাকে বলা হয় pgrep(কমপক্ষে সোলারিস এবং লিনাক্সে স্থানীয়ভাবে উপলব্ধ) available
— গিলস 21'20
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.