यदि, में bash, मैं निष्पादित करता हूं:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
जहां cmd{1..n}मैं अलग नहीं हो सकता, मैं पीआईडी कैसे प्राप्त करूं cmdi? वैकल्पिक रूप से, मैं इस cmdiप्रक्रिया का संकेत कैसे दे सकता हूं ? (उदाहरण के लिए, इसे भेजने के SIGUSR1?)
pkill/ pgrep, pidofआदि अच्छा जवाब की तरह लग रही नहीं है के अन्य उदाहरण के बाद से cmdiशायद, चल ही पाइप लाइन के हिस्से के रूप भी शामिल है। jobs -pका पीआईडी देता है cmd1, मेरे लिए।
iमें कुछ भी हो सकता {1..n}।
cat /var/run/out | nc -l 8080क्या केवल सतही रूप से समान है cmd1 | cmd2? आपका बाधा, कि आप नंगे-हड्डियों की पाइपलाइन टाइप करना चाहते हैं और फिर पीआईडी को पुनर्प्राप्त करना चाहते हैं , (1) प्रश्न में नहीं कहा गया है, और (2) एक अच्छे, सामान्य समाधान के लिए अनुमति देने की संभावना नहीं है।
cmd1 | cmd2एक बहुत ही विशेष मामला है जहां दोनों पीआईडी आसानी से प्राप्त करने योग्य हैं। क्या मैंने n के बारे में कुछ कहा? तो आप n = 2 क्यों मानेंगे? क्या मैंने इस बारे में कुछ कहा कि सेमीडी क्या है? तो आप यह क्यों मानेंगे कि मैं सीमडी को संशोधित कर सकता हूं। मैं एक सामान्य समाधान के लिए कह रहा हूं और आप प्रतिबंध लगा रहे हैं।