Jeśli bashwykonam:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
gdzie cmd{1..n}mogą nie być wyraźne, w jaki sposób uzyskać PID cmdi? Alternatywnie, jak mogę zasygnalizować cmdiproces? (Na przykład, wysłać go SIGUSR1?)
pkill/ pgrep, pidofItd. Nie wygląda dobrych odpowiedzi, od innych instancji cmdimoże działa, w tym w ramach tego samego rurociągu. jobs -ppodaje PID cmd1dla mnie.
imoże być cokolwiek {1..n}.
cat /var/run/out | nc -l 8080jest tylko pozornie podobny do cmd1 | cmd2? Twoje ograniczenie, że chcesz wpisać rurociąg z gołą kością, a następnie odzyskać PID, jest (1) nie wymienione w pytaniu i (2) jest mało prawdopodobne, aby pozwolić na dobre, ogólne rozwiązanie.
cmd1 | cmd2jest bardzo szczególnym przypadkiem, w którym oba PID są łatwo dostępne. Czy mówiłem coś o n? Dlaczego więc miałbyś założyć n = 2? Czy mówiłem coś o tym, czym jest cmdi? Dlaczego więc miałbyś zakładać, że mogę zmodyfikować cmdi? Proszę o ogólne rozwiązanie, a pan nakłada ograniczenia.