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

THE*_*rer 10 bash

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

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

ping x.x.x.x &
Run Code Online (Sandbox Code Playgroud)

什么是那个ping的pid?

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

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

ping -t10000 -W10 x.x.x.x &
then
ps ax | grep 'ping -t10000 -W10 x.x.x.x'$
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*x L 20

该变量$!具有您启动的最后一个后台进程的PID.


0xC*_*22L 6

使用此:$!在执行所需PID的命令后立即使用.这意味着,虽然你需要&在命令后使用一个&符号(),然后在后台启动它.例如:

my_command & CMDPID=$!
echo "$CMDPID"
Run Code Online (Sandbox Code Playgroud)