क्या निर्देशिका / डिस्क स्थान का पता लगाने का एक तरीका है जिससे एक प्रक्रिया शुरू की गई थी? मैं / 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
और फिर आउटपुट की जांच करें
यह उन सभी फाइलों को सूचीबद्ध करेगा जिनकी प्रक्रिया आपके साथ जुड़ी हुई है ...