bash - How to get the PID of a process in a pipeline -
निम्नलिखित सरल उदाहरण पर विचार करें:
my_prog | awk '...'> आउटपुट .csv और my_pid = "$!" # जीआरआईडी के लिए पीआईडी के बजाय my_prog के लिए नींद 10 मारो $ my_pid # my_prog अभी भी अपने बफर में डेटा है कि awk कभी नहीं देखा डेटा खो दिया है! बैश में, $ my_pid पीआईडी को awk के लिए इंगित करता है। हालांकि, मुझे my_prog के लिए पीआईडी की आवश्यकता है अगर मैं awk को मारता हूं, my_prog इसे आउटपुट बफर फ्लश करने के लिए नहीं जानता और डेटा खो जाता है। तो, एक my_prog के लिए पीआईडी कैसे प्राप्त करेगा? ध्यान दें कि ps aux | grep my_prog काम नहीं करेगा क्योंकि कई my_prog हो रहा है।
नोट: परिवर्तित cat से awk '...' की आवश्यकता को स्पष्ट करने के लिए मुझे क्या चाहिए।
< P> बस एक ही मुद्दा था मेरा समाधान: <प्री>
process_1 | प्रक्रिया_2 & amp; PID_OF_PROCESS_2 = $! PID_OF_PROCESS_1 = `नौकरियां-पी` बस सुनिश्चित करें कि process_1 पहली पृष्ठभूमि प्रक्रिया है अन्यथा, आपको jobs -l के पूर्ण आउटपुट को पार्स करने की आवश्यकता है।
Comments
Post a Comment