从子进程中获取PID

时间:2017-06-06 17:51:30

标签: bash time pid cp

我在尝试使用Time从命令中获取PID时遇到问题。 我使用的命令是:

{ time cp  ubuntu/ubuntu-16.04.2-desktop-amd64.iso 
 ubuntucopia/$i-ubuntu-16.04.2-desktop-amd64.iso; } 
    2>> "logs/time.log" &       

如果我现在使用$!,我从TIME获得了PID。我怎么能得到命令cp的pid?目前要解决这个问题我正在使用这个:

father=$!           
cpPid=$(pgrep -P $father)

有了这个,并不总是我得到了pid,有时$ cpPid是空的。

谢谢!

1 个答案:

答案 0 :(得分:0)

这将为您提供cp命令的pid,但您应该使用比cp更具体的搜索字符串,因为此示例具有多次匹配的高可能性。

ps -eo pid,cmd | grep cp | grep -v grep | awk '{print $1}'