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 cmdi
proses? (Misalnya, kirimkan SIGUSR1
?)
pkill
/ pgrep
, pidof
Dll. Tidak terlihat seperti jawaban yang baik, karena contoh lain cmdi
mungkin berjalan, termasuk sebagai bagian dari pipa yang sama. jobs -p
memberikan PID cmd1
untuk saya.
i
bisa apa saja {1..n}
.
cat /var/run/out | nc -l 8080
hanya 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 | cmd2
adalah 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.