2012-05-24 25 views
8

यदि मैं एक बच्चे के रूप में एक बैश स्क्रिप्ट लॉन्च करता हूं, तो मैं $$ का उपयोग करके माता-पिता को अपना स्वयं का पिड पास कर सकता हूं।लॉन्च प्रोग्राम के ढक्कन को जानने का कोई तरीका है?

ping x.x.x.x & 

कि पिंग की पीआईडी ​​क्या:

वहाँ किसी भी तरह से एक प्रोग्राम है जो मैं पृष्ठभूमि की तरह में एक स्क्रिप्ट से लांच की पीआईडी ​​को खोजने के लिए है?

(मैं तो बस उम्मीद है कि मैं अपने स्वयं सही ढंग से व्यक्त ... मेरी अंग्रेजी सबसे अच्छा नहीं है)

पी एस। मैं एक सरल और स्वच्छ समाधान के लिए देख रहा हूँ, मैं की तरह कुछ कल्पना कर सकते हैं:

ping -t10000 -W10 x.x.x.x & 
then 
ps ax | grep 'ping -t10000 -W10 x.x.x.x'$ 

लेकिन बहुत जटिल है, यह भी भी है कि मैं स्विच का इस्तेमाल किया यह साफ नहीं है निजीकृत करने के लिए, यह प्रणाली में एक और प्रक्रियाओं को पकड़ सकता है

+0

'pgrep', यदि उपलब्ध हो, तो 'grep'ping' ps' से बेहतर है। –

उत्तर

17

परिवर्तनीय $! आपके द्वारा शुरू की गई अंतिम पृष्ठभूमि प्रक्रिया का पीआईडी ​​है।

+0

आपको धन्यवाद! यह हल करता है ... और (blushing) मुझे पता नहीं कि मैं कैसे – THESorcerer

+1

@THESorcerer को याद किया: स्वीकार किए गए उत्तर को चिह्नित करना न भूलें। –

6

इसका उपयोग करें: $! जिस आदेश के पीआईडी ​​आप चाहते हैं उसे निष्पादित करने के ठीक बाद। इसका मतलब है, हालांकि, इसे पृष्ठभूमि में शुरू करने के लिए, आदेश के बाद आपको एम्पर्सेंड (&) का उपयोग करने की आवश्यकता है। उदा।

my_command & CMDPID=$! 
echo "$CMDPID" 
संबंधित मुद्दे

 संबंधित मुद्दे