In bash
, ben çalıştırırsanız:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
nerede cmd{1..n}
farklı olmayabilir, nasıl PID alabilirim cmdi
? Alternatif olarak, cmdi
süreci nasıl işaret edebilirim ? (Örneğin, gönderilsin mi SIGUSR1
?)
pkill
/ pgrep
, pidof
Vb. İyi yanıtlar gibi görünmez, çünkü cmdi
aynı boru hattının bir parçası da dahil olmak üzere belki de çalışan diğer örnekler . benim jobs -p
için PID veriyor cmd1
.
i
herhangi bir şey olabilir {1..n}
.
cat /var/run/out | nc -l 8080
sadece yüzeysel olarak benzer etmek cmd1 | cmd2
? Çıplak kemikler boru hattını yazmak ve daha sonra PID'leri kurtarmak istediğiniz kısıtlamanız (1) soruda belirtilmemiş ve (2) iyi, genel bir çözüme izin verme olasılığı düşüktür.
cmd1 | cmd2
her iki PID'nin de kolayca elde edilebildiği çok özel bir durumdur. N hakkında bir şey söyledim mi? Öyleyse neden n = 2 olduğunu varsayalım? Cmdi'nin ne olduğu hakkında bir şey söyledim mi? Peki neden cmdi'yi değiştirebileceğimi varsayalım? Genel bir çözüm istiyorum ve siz kısıtlamalar uyguluyorsunuz.