Jika, dalam bash, saya mengeksekusi:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
di mana cmd{1..n}mungkin tidak berbeda, bagaimana cara mendapatkan PID cmdi? Atau, bagaimana saya bisa menandai cmdiproses? (Misalnya, kirimkan SIGUSR1?)
pkill/ pgrep, pidofDll. Tidak terlihat seperti jawaban yang baik, karena contoh lain cmdimungkin berjalan, termasuk sebagai bagian dari pipa yang sama. jobs -pmemberikan PID cmd1untuk saya.
ibisa apa saja {1..n}.
cat /var/run/out | nc -l 8080hanya terlihat serupa dengan cmd1 | cmd2? Kendala Anda, bahwa Anda ingin mengetikkan pipa telanjang dan kemudian memulihkan PID, adalah (1) tidak disebutkan dalam pertanyaan, dan (2) tidak memungkinkan untuk solusi umum yang baik.
cmd1 | cmd2adalah kasus yang sangat khusus di mana kedua PID mudah diperoleh. Apakah saya mengatakan sesuatu tentang n? Jadi mengapa Anda mengasumsikan n = 2? Apakah saya mengatakan sesuatu tentang cmdi? Jadi mengapa Anda menganggap saya bisa memodifikasi cmdi? Saya meminta solusi umum dan Anda memberlakukan batasan.