Если 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? Я прошу общее решение, а вы вводите ограничения.