क्या लिनक्स पर एक निष्पादन योग्य फ़ाइल के सभी चल रहे इंस्टेंस के पीआईडी प्राप्त करने का एक तरीका है?
क्या लिनक्स पर एक निष्पादन योग्य फ़ाइल के सभी चल रहे इंस्टेंस के पीआईडी प्राप्त करने का एक तरीका है?
जवाबों:
ऐसा करने के कई तरीके हैं; आप सभी प्रक्रियाओं को सूचीबद्ध कर सकते हैं और उन लोगों को खोज सकते हैं जो उस निष्पादन योग्य के नाम से मेल खाते हैं जिसमें आप रुचि रखते हैं; या, आप उन सभी चलने वाली प्रक्रियाओं को सूचीबद्ध कर सकते हैं जिन्होंने उस विशिष्ट निष्पादन योग्य फ़ाइल को खोला है।
उदाहरण के लिए:
# list all processes, grep by filename
$ ps -ef | grep firefox
...(lots of output, need to cut/filter)...
# more specific, e.g., maybe there's also /opt/bin/firefox
$ ps -ef | grep /usr/lib/firefox/firefox
....
(नोट: उपरोक्त उदाहरण में, आपको grep -v grep
यह जोड़ने की आवश्यकता है कि क्या यह स्क्रिप्टिंग है। बस इस उदाहरण को बुनियादी खोजपूर्ण विश्लेषण के लिए जोड़ना है)
बिल्ट-इन का उदाहरण वही काम करता है (मूल रूप से):
$ pidof firefox
5915 5892 5851 5809 5753 5509
# more specific
$ pidof /usr/lib/firefox/firefox
5915 5892 5851 5809 5753 5509
यह अनजाने में एक ही नाम के साथ अलग-अलग निष्पादनयोग्य को सूचीबद्ध कर सकता है, इसलिए कुछ सावधानी की आवश्यकता है। लेकिन यह एक बहुत अच्छा है, स्क्रिप्टिंग के लिए बहुत अच्छा उत्पादन।
अंत में, खुली फ़ाइलों ( lsof {program}
) को सूचीबद्ध करने के लिए एक बहुत ही मजबूत विकल्प है , और उन्हें खोलने वाली संबंधित प्रक्रियाओं को ढूंढें ( {program}
जब यह चल रहा हो तो एक निष्पादन योग्य फ़ाइल "पढ़ने के लिए खुली"):
# note: sudo not always necessary, but might be
$ lsof /usr/lib/firefox/firefox
...
pidof <programname>