/ / बैश: बैकग्राउंड जॉब चलाने और पिड - पायथन, लिनेक्स, बैश, पीड, परमिको

बैश: पृष्ठभूमि की नौकरी चलाना और पिड - पायथन, लिनक्स, बैश, पिड, पैरामीको प्राप्त करना

$1 &
echo $!

क्या पृष्ठभूमि में एक कमांड लॉन्च करने और तुरंत पीआईडी ​​वापस करने का एक अलग तरीका है?

इसलिए जब मैं लॉन्च करता हूं bash run.sh "python worker.py" यह मुझे लॉन्च की गई नौकरी के बारे में जानकारी देगा।

मैं पैरामिको, एक पायथन लाइब्रेरी का उपयोग कर रहा हूं जो "काम नहीं करता है" python worker.py &। इसलिए मैं एक बैश स्क्रिप्ट बनाना चाहता हूं जो रिमोट सर्वर पर मेरे लिए ऐसा करेगी।

उत्तर:

उत्तर № 1 के लिए 1

चूंकि आप "बैश का उपयोग कर रहे हैं, आप केवल पृष्ठभूमि प्रक्रियाओं की सूची प्राप्त कर सकते हैं।" jobs, और इसके माध्यम से पीआईडी ​​को वापस करने का निर्देश दें -l झंडा। उद्धरण के लिए man bash:

   jobs [-lnprs] [ jobspec ... ]
jobs -x command [ args ... ]
The first form lists the active jobs.  The options have the
following meanings:
-l     List process IDs in addition to the normal information.

तो आपके मामले में, कुछ इस तरह jobs -l | grep "worker.py" | awk "{print $2}" शायद आप जो चाहते हैं वह आपको दे देंगे।