微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 按时间启动进程的PID

假设我运行时间./a.out,然后我可以通过变量$!获得时间PID.但是如何获得a.out的PID?

当然,我可以解析ps的输出,但我想要一个更优雅的解决方案.

我检查了人的时间,找不到任何东西.

我得到的最接近的是时间(睡眠10& echo $!),但由于分叉,所花费的时间基本上为0而不是10s.

解决方法:

根据定义,a.out是一个儿童时间过程.所以时间是a.out的父pid!这是一个测试,我用睡眠60替换a.out:

$time sleep 50 & timepid=$!
$aoutpid=$(pgrep -P $timepid)
$ps -o ppid,pid,start,cmd w -p $$,$timepid,$aoutpid

PPID   PID  STARTED CMD
2065  2068 21:34:57 -bash
2068  3297 22:16:05 -bash
3297  3298 22:16:05 sleep 50

(注意:时间实际上是shell内置,所以上面的命令是bash!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐