मुझे पर्ल स्क्रिप्ट का रास्ता कैसे मिलता है, जिसे मैं केवल PID के बारे में जानता हूं?


2

मुझे हाल ही में एक समस्या थी, जहां एक पर्ल स्क्रिप्ट सर्वर संसाधनों का उपभोग कर रही थी। मुझे पता चला कि यह "टॉप" का उपयोग करके एक पर्ल स्क्रिप्ट थी। लेकिन इसने स्क्रिप्ट को रास्ता नहीं दिया। और न ही किया ps। इसके अलावा, ps -ef ने दिखाया कि उस pid के साथ प्रक्रिया /usr/bin/httpd(Apache) है, इसलिए यह जरूर होगा कि मैं जो कुछ perl पृष्ठ मानता हूं , वह अपाचे हो।

क्या वर्तमान में पर्ल स्क्रिप्ट चलाने का मार्ग प्राप्त करना संभव है, अगर मुझे केवल उस स्क्रिप्ट को चलाने वाली पर्ल प्रक्रिया की PID प्रक्रिया पता है? यदि हां, तो कैसे?

स्पष्टीकरण: मुझे perl बाइनरी के लिए पथ की आवश्यकता नहीं है, मुझे perl स्क्रिप्ट के लिए पथ की आवश्यकता है जिसे बाइनरी वर्तमान में निष्पादित कर रहा है।


ps auxआपको बताना चाहिए कि जब पेरल प्रक्रिया शुरू की गई थी, तो जिम्मेदार स्क्रिप्ट को खोजने के लिए अपाचे एक्सेस लॉग के साथ मिलाएं।
डैनियल बेक

जवाबों:


1

आप कर सकते हैं ps -p $p -o command, जहां $ पी के बजाय आप प्रक्रिया के पीआईडी ​​का उपयोग करते हैं। यह पूरी कमांड लाइन देता है।


1

प्रक्रिया के पीआईडी ​​के लिए / पर एक नज़र डालें। एक फाइल में हैcmdline

इसमें वह कमांड है जो स्क्रिप्ट को चलाने के लिए उपयोग किया गया था।

उदाहरण के लिए:

$ cat /proc/19433/cmdline
perl/path/to/myscript

"पर्ल" और "/ पथ ..." के बीच वास्तव में \ 000 (chr (0) / NULL) है, लेकिन बिल्ली इसे नहीं दिखाती है।


2
मैं भी बस दुर्घटना से पता चला है, कि "शीर्ष" आउटपुट को देखने के दौरान ग दबाने से पूरा कमांड नाम मिलता है। नीट :)
किप्रास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.