Si, en bash, ejecuto:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
donde cmd{1..n}puede no ser distinto, ¿cómo obtengo el PID cmdi? Alternativamente, ¿cómo puedo señalar el cmdiproceso? (Por ejemplo, ¿enviarlo SIGUSR1?)
pkill/ pgrep, pidofEtc. no parecen buenas respuestas, ya que otras instancias de cmdiejecución tal vez, incluso como parte de la misma canalización. jobs -pda el PID de cmd1, para mí.
ipuede ser cualquier cosa adentro {1..n}.
cat /var/run/out | nc -l 8080es solo superficialmente similar a cmd1 | cmd2? Su restricción, que desea escribir la tubería básica y luego recuperar los PID, (1) no se indica en la pregunta, y (2) es poco probable que permita una buena solución general.
cmd1 | cmd2Es un caso muy especial donde ambos PID son fácilmente obtenibles. ¿Dije algo sobre n? Entonces, ¿por qué asumirías n = 2? ¿Dije algo sobre lo que es cmdi? Entonces, ¿por qué asumirías que podría modificar cmdi? Estoy pidiendo una solución general y usted está imponiendo restricciones.