Якщо в bash
, я виконую:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
де cmd{1..n}
може не відрізнятись, як отримати ПІД cmdi
? Як варіант я можу сигналізувати про cmdi
процес? (Наприклад, відправити його SIGUSR1
?)
pkill
/ pgrep
, І pidof
так далі не схожі на хороші відповіді, так як інших випадках , cmdi
можливо , працює, в тому числі в рамках одного і того ж трубопроводу. jobs -p
дає ПІД cmd1
для мене.
i
може бути чим завгодно {1..n}
.
cat /var/run/out | nc -l 8080
лише поверхнево схожий на cmd1 | cmd2
? Ваше обмеження в тому, що ви хочете набрати трубопровід з голими кістками, а потім відновити PID, (1) не вказано у питанні, і (2) навряд чи дозволить отримати хороше загальне рішення.
cmd1 | cmd2
це дуже особливий випадок, коли обидва PID легко отримати. Я щось сказав про російську? То чому б ви припускали n = 2? Я щось казав про те, що таке cmdi? То чому ви вважаєте, що я можу змінити cmdi? Я прошу загального рішення, і ви накладаєте обмеження.