有没有办法知道已启动程序的pid?

时间:2012-05-24 11:55:28

标签: bash

如果我作为孩子启动bash脚本,我可以使用$$将自己的pid传递给父。

有没有办法找到我从后台脚本启动的程序的pid 像:

ping x.x.x.x &

ping的pid是什么?

(我希望我能正确地表达自己......我的英语不是最好的)

PS。我正在寻找一个简单而干净的解决方案,我可以想象如下:

ping -t10000 -W10 x.x.x.x &
then
ps ax | grep 'ping -t10000 -W10 x.x.x.x'$

但是太复杂了,甚至我用开关来个性化它不干净,它可能会捕获系统中的另一个进程

2 个答案:

答案 0 :(得分:19)

变量$!具有您开始的最后一个后台进程的PID。

答案 1 :(得分:6)

在执行所需PID的命令后立即使用:$!。这意味着,虽然您需要在命令后使用&符号(&),但要在后台启动它。 E.g:

my_command & CMDPID=$!
echo "$CMDPID"