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