如果在中bash
执行:
cmd1 | cmd2 | ... | cmdi | ... | cmdn &
哪里cmd{1..n}
可能没有区别,我该如何获取PID cmdi
?或者,我如何发信号通知该cmdi
过程?(例如,发送SIGUSR1
?)
pkill
/ pgrep
,pidof
等看起来不像很好的答案,因为其他情况下cmdi
或许运行,包括作为同一管道的一部分。jobs -p
给cmd1
我的PID 。
i
可以是{1..n}
。
我如何以这种方式启动进程的pid的
—
G-Man说'Reinstate Monica'14
@ G-Man Care解释一下?我只看到表面上的相似之处,正如我在Ramesh的答案中所解释的那样,修改命令集没有多大用处。
—
muru 2014年
表面相似?
—
G-Man说'Resstate Monica''Sep
cat /var/run/out | nc -l 8080
仅仅是表面上类似到cmd1 | cmd2
?您想要输入裸管道然后恢复PID的约束是(1)在问题中未提及,并且(2)不太可能提供好的通用解决方案。
@ G-Man相反,您要施加的约束条件是没有说明简单的约束。
—
muru 2014年
cmd1 | cmd2
这是非常容易获得两个PID的特殊情况。我有没有说过关于n的话?那么,为什么要假设n = 2?我说了什么是cmdi吗?那么,为什么要假设我可以修改cmdi?我要求一个一般的解决方案,您正在施加限制。