复合shell命令的PID
在你的 shell 中(我的例子是 bash),你可以使用 $! 获取最后一个后台进程的 pid!变量:
command &
echo $!
但是,我对复合命令感兴趣:
commandA | commandB &
echo $!
在本例中,$!的值似乎是commandB的PID。我正在寻找的是commandA 的PID。有没有简单的方法可以得到它?
In your shell (bash in my case), you can get the pid of the last backgrounded process with the $! variable:
command &
echo $!
However, I'm interested in a compound command:
commandA | commandB &
echo $!
In this case, the value of $! seems to be the PID of commandB. What I'm looking for is the PID of commandA. Is there an easy way to get it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
jobs -l 将列出管道中每个成员的 PID。
jobs -l
will list the PIDs of each member of the pipeline.看看这个问题:
如何在 Bash 中获取通过管道传输到另一个进程的进程的 PID?
您应该在那里找到您需要的内容。
Have a look to this question:
How to get the PID of a process that is piped to another process in Bash?
You should find what you need there.