Якщо в 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? Я прошу загального рішення, і ви накладаєте обмеження.