আমি কীভাবে কোনও প্রক্রিয়ার বাইনারি যাওয়ার পথ নির্ধারণ করব?


30

ডিরেক্টরি / ডিস্কের অবস্থানটি খুঁজে পাওয়ার কোনও উপায় কি কোনও প্রক্রিয়া শুরু হয়েছিল? আমি / প্রোচ মাউন্ট সম্পর্কে সচেতন কিন্তু এর ভিতরে কোথায় সন্ধান করা উচিত তা সত্য নয়।


1
আপনি কি বাইনারিটির অবস্থান, বা যে ডিরেক্টরি থেকে কোনও প্রক্রিয়া শুরু করেছিলেন তা বোঝাতে চান?
লেকেনস্টেইন

অস্পষ্টতার জন্য দুঃখিত, আমি বাইনারিটি বোঝাতে চাইছি
সুপারজাম্বো

উত্তর:


37

/procপথ পরিদর্শন করা হবে exeডিরেক্টরির PID সংশ্লিষ্ট লিংকে।

এর সাথে একটি উদাহরণ নেওয়া যাক update-notifier:

পিডটি সন্ধান করুন , যা এই উদাহরণে 15421 :

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

প্রতীকী লিঙ্কটি দেখুন:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'

ওহ হ্যাঁ, আমি প্রায় ছিলাম। কিংবদন্তি, আপনাকে ধন্যবাদ।
সুপারজাম্বো

15

whichআপনি যা খুঁজছেন তা হতে পারে । উদাহরণস্বরূপ, আমার সিস্টেমে

which firefox 

আয়

/usr/bin/firefox

আরও দেখুন সোলারিস, উবুন্টু, সুসে অথবা রেডহ্যাট লিনাক্স চলমান অ্যাপ্লিকেশনটির পথ খুঁজুন


6
whichদুর্দান্ত তবে এটি কেবল আপনার $ PATH এ প্রোগ্রামগুলি দেয় returns আমি যদি দৌড়ে যাই RandomProgramIDownloadedToErisKnowsWhere.binতবে এটি খুব বেশি কাজে আসবে না।
djeikyb

6

আপনার প্রসেস আইডি উপলভ্য করে আপনি ব্যবহার করতে পারেন:

readlink -f /proc/$pid/exe

( $pidএকটি প্রক্রিয়া প্রক্রিয়া আইডি দ্বারা প্রতিস্থাপন )

প্রক্রিয়াটি যদি আপনার নিজস্ব না হয় তবে আপনাকে sudoএটির সামনে রাখতে হবে।

কমান্ডের অবস্থান নির্ধারণের জন্য একটি উদাহরণ firefox:

  1. এর আউটপুট ps ax -o pid,cmd | grep firefox:

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 প্রক্রিয়া আইডি, তাই আপনি চালাতে হবে:

    readlink -f /proc/28179/exe
    

    কোন ফলাফল:

    /usr/bin/firefox
    

2
আপনি দুর্দান্ত জিনিসগুলি সাথে এটি করতে পারেন /proc/$pid/exe, যদি বাইনারিটি দুর্ঘটনাক্রমে মুছে ফেলা হয় তবে আপনি এটি দিয়ে এটি পুনরুদ্ধার করতে পারেন:dd if=/proc/$pid/exe of=restored-binary
লেকেনস্টেইন

1

প্রেস Ctrl+ + Alt+ + Tএকটি টার্মিনাল ও টাইপ যেতে:

ls -al /proc/{pid}/fd  

এবং তারপরে আউটপুট পরীক্ষা করুন

এটি আপনার প্রক্রিয়া সম্পর্কিত সমস্ত ফাইলের তালিকা করবে ...


আপনি দয়া করে আমার সম্পাদনাগুলি পর্যালোচনা করতে পারেন এবং ভবিষ্যতে আপনার উত্তরগুলির পঠনযোগ্যতা উন্নত করতে সম্পাদনা
সহায়তাটিও পর্যালোচনা করতে পারবেন

0

অন্যান্য উত্তরের সমস্ত কমান্ড ভাল, তবে আপনি আরও কিছু করতে পারেন - প্রক্রিয়া তালিকায় আসার আগে কিছু প্রক্রিয়া আসলে কীভাবে চালিত হয়েছিল তা দেখে।

টার্মিনালে চালান:

top

এবং এটি চলার সময় কীবোর্ড টিপুন Cএবং আপনি যে প্রক্রিয়াগুলি চালিত ছিলেন তার একটি কমান্ড পাবেন।

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