क्या निर्देशिका / डिस्क स्थान का पता लगाने का एक तरीका है जिससे एक प्रक्रिया शुरू की गई थी? मैं / proc माउंट से वाकिफ हूं, लेकिन वास्तव में इसके अंदर देखने के लिए नहीं।
क्या निर्देशिका / डिस्क स्थान का पता लगाने का एक तरीका है जिससे एक प्रक्रिया शुरू की गई थी? मैं / proc माउंट से वाकिफ हूं, लेकिन वास्तव में इसके अंदर देखने के लिए नहीं।
जवाबों:
/proc
जिस तरह से निरीक्षण करने के लिए किया जाएगा exe
निर्देशिका पीआईडी के लिए इसी में लिंक।
चलो एक उदाहरण लेते हैं 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'
हो सकता which
है कि आप जो ढूंढ रहे हों। उदाहरण के लिए, मेरे सिस्टम पर
which firefox
रिटर्न
/usr/bin/firefox
Solaris, Ubuntu, Suse या Redhat Linux पर चलने वाले एप्लिकेशन का पथ भी देखें ।
which
शांत है, लेकिन यह केवल आपके $ पैट में कार्यक्रम लौटाता है। अगर मैं दौड़ता हूं RandomProgramIDownloadedToErisKnowsWhere.bin
, तो यह बहुत काम का नहीं होगा।
आपके पास उपलब्ध एक प्रक्रिया आईडी उपलब्ध है, आप इसका उपयोग कर सकते हैं:
readlink -f /proc/$pid/exe
( $pid
एक प्रक्रिया की प्रक्रिया आईडी से बदलें )
यदि प्रक्रिया आपके स्वामित्व में नहीं है, तो आपको इसके sudo
सामने रखना होगा।
कमांड का स्थान निर्धारित करने के लिए एक उदाहरण firefox
:
के उत्पादन ps ax -o pid,cmd | grep firefox
:
22831 grep --color=auto firefox
28179 /usr/lib/firefox-4.0.1/firefox-bin
28179
प्रक्रिया आईडी है, इसलिए आपको चलाना होगा:
readlink -f /proc/28179/exe
कौन से आउटपुट:
/usr/bin/firefox
/proc/$pid/exe
, अगर बाइनरी गलती से नष्ट हो जाती है, तो आप इसके साथ इसे पुनर्स्थापित कर सकते हैं:dd if=/proc/$pid/exe of=restored-binary
प्रेस Ctrl+ Alt+ Tएक टर्मिनल और प्रकार में जाने के लिए:
ls -al /proc/{pid}/fd
और फिर आउटपुट की जांच करें
यह उन सभी फाइलों को सूचीबद्ध करेगा जिनकी प्रक्रिया आपके साथ जुड़ी हुई है ...