ถ้า, ในbash, ฉันเรียกใช้งาน:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
ในกรณีที่cmd{1..n}ไม่ชัดเจนฉันจะได้รับ PID ได้cmdiอย่างไร อีกวิธีหนึ่งฉันจะส่งสัญญาณcmdiกระบวนการได้อย่างไร (ตัวอย่างเช่นส่งSIGUSR1?)
pkill/ pgrep, pidofฯลฯ ดูไม่เหมือนคำตอบที่ดีเนื่องจากกรณีอื่น ๆcmdiอาจจะทำงานรวมทั้งเป็นส่วนหนึ่งของท่อเดียวกัน jobs -pให้ PID ของcmd1สำหรับฉัน
i{1..n}สามารถเป็นอะไรก็ได้ใน
cat /var/run/out | nc -l 8080เป็นเพียงผิวเผินเท่านั้นที่จะcmd1 | cmd2? ข้อ จำกัด ของคุณที่คุณต้องการพิมพ์ไปป์ไลน์เปลือยแล้วกู้คืน PID คือ (1) ไม่ได้ระบุไว้ในคำถามและ (2) ไม่น่าจะอนุญาตวิธีแก้ปัญหาทั่วไปที่ดี
cmd1 | cmd2เป็นกรณีพิเศษมากที่สามารถขอรับ PID ทั้งสองได้อย่างง่ายดาย ฉันพูดอะไรเกี่ยวกับ n หรือไม่? แล้วทำไมคุณถึงคิดว่า n = 2 ฉันพูดอะไรเกี่ยวกับสิ่งที่ cmdi คืออะไร? แล้วทำไมคุณถึงคิดว่าฉันสามารถแก้ไข cmdi ได้? ฉันกำลังขอวิธีแก้ไขปัญหาทั่วไปและคุณกำลังกำหนดข้อ จำกัด