在shell下,如何在“time app”中获取app的id?

k5ifujac  于 2023-04-07  发布在  Shell
关注(0)|答案(1)|浏览(106)

在shell下,当“time app“被发布时,如何获取app的id?
下面的代码似乎只获取调用“timemyapp”的shell父ID

######################## #!/bin/sh

时间myapp & myid =“$!”################
谢谢
当“time myapp”时,我想知道myapp的id,以便向其发送信号

rlcwz9us

rlcwz9us1#

您可以使用ps查找以该进程ID作为父进程ID的进程:

myappid=$(ps -a -o ppid=,pid= | awk -v ppid="$myid" '$1 == ppid { print $2 }')

使用ps -o ppid,pid,我们得到一个两列的表,父进程ID在第一列,进程ID在第二列。然后,我们使用AWK从第一列(父)中有$myid的行中打印第二列值。
ps的GNU实现能够通过内置的父进程ID进行限制,因此您可以直接

myappid=$(ps --ppid "$myid" -o pid=)

相关问题