Se, in bash, eseguo:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
dove il cmd{1..n}non può essere distinto, come ottengo il PID di cmdi? In alternativa, come posso segnalare il cmdiprocesso? (Ad esempio, inviarlo SIGUSR1?)
pkill/ pgrep, pidofEcc. Non sembrano buone risposte, poiché altre istanze di cmdiforse in esecuzione, incluso come parte della stessa pipeline. jobs -pdà il PID di cmd1, per me.
ipuò essere qualsiasi cosa dentro {1..n}.
cat /var/run/out | nc -l 8080è solo superficialmente simile a cmd1 | cmd2? Il vostro vincolo, che si desidera digitare la pipeline bare-bones e quindi ripristinare i PID, non è (1) indicato nella domanda e (2) è improbabile che consenta una buona soluzione generale.
cmd1 | cmd2è un caso molto speciale in cui entrambi i PID sono facilmente ottenibili. Ho detto qualcosa su n? Quindi perché dovresti assumere n = 2? Ho detto qualcosa su cos'è cmdi? Quindi, perché pensi che potrei modificare cmdi? Sto chiedendo una soluzione generale e tu stai imponendo restrizioni.