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 cmdi
proceso? (Por ejemplo, ¿enviarlo SIGUSR1
?)
pkill
/ pgrep
, pidof
Etc. no parecen buenas respuestas, ya que otras instancias de cmdi
ejecución tal vez, incluso como parte de la misma canalización. jobs -p
da el PID de cmd1
, para mí.
i
puede ser cualquier cosa adentro {1..n}
.
cat /var/run/out | nc -l 8080
es 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 | cmd2
Es 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.