কোনও প্রক্রিয়াটির কমান্ড লাইন আর্গুমেন্টগুলি ব্যবহার করে এর পিআইডি কীভাবে খুঁজে পাব?


2

আমি ম্যাক ওএস এক্স ব্যবহার করছি, যার অর্থ আমার কাছে (উদাহরণস্বরূপ) পিগ্রিপ / পিকিল নেই, তবে আমি এর মতো কিছু চাই (আমি ম্যাকপোর্টগুলি / ফিঙ্ক ব্যবহার করি না, হয় - হোমব্রিউ আমার পছন্দসই ইউনিক্স প্যাকেজ সরঞ্জাম - সুতরাং তাদের থেকে প্যাকেজগুলি না করবে)।

আমি নির্দিষ্ট পরামিতিগুলির সাথে এসএসএসের একটি উদাহরণ খুঁজে পেতে এবং হত্যা করতে চাই - মূলত, একটি নির্দিষ্ট দূরবর্তী এসএস পোর্ট ফরওয়ার্ডিং টানেল। আমি যে কমান্ডটি ব্যবহার করব তা হ'ল:

ps aux | grep ssh | grep remote-host | grep port-forwarding-stmt

যাইহোক, কখনও কখনও এই গ্রেপ কমান্ডটি আসলে আউটপুটে প্রদর্শিত হয়, সুতরাং বর্তমান কমান্ড স্ট্রিং লিখিতভাবে কার্যকর হয় না।

ম্যাক ওএস এক্স এর জন্য এমন কোনও সরঞ্জাম আছে যা আমি এটি করতে ব্যবহার করতে পারি?

উত্তর:


3

স্ট্রিংয়ে একটি অতিরিক্ত গ্রেপ যুক্ত করুন তবে সমস্ত গ্রেপ আউটপুট অনুরোধগুলি সরাতে উল্টা বিকল্পটি ব্যবহার করুন:

ps aux | grep ssh | grep remote-host | grep port-forwarding-stmt | grep -v grep

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

2

কৌশলটি নিজেকে খুঁজে না পাওয়ার জন্য গ্রেপকে চালিত করা trick

... | grep "[s]sh" | ...

1

অজানা ব্যবহার করতে পারেন:

ps axuwww | awk '!/grep/ && /ssh/ && /remote-host/ && /port-forwarding-stmt/'

PS (1) এর 'www' যুক্তি সংক্ষিপ্ত সংস্করণের পরিবর্তে সম্পূর্ণ কমান্ড-লাইনটি প্রদর্শন করতে বলে।


1

ps -a -o pid, command | awk '(/[s]sh/ && /remote-host/ && /port-forwarding-stmt/){ print $1}'

বর্ণিত কিছু ধারণাকে একত্রিত করে। -oঅংশ নির্দিষ্ট করে যে আমরা কেবল PID এবং কমান্ড, মুদ্রণ এবং print $1শুধুমাত্র PID অংশ ছাপে। [s]shএটি নিজে খুঁজে তোলে (চমৎকার কৌতুক!)

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