ถ้า, ใน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 ได้? ฉันกำลังขอวิธีแก้ไขปัญหาทั่วไปและคุณกำลังกำหนดข้อ จำกัด