在shell下,当“time app“被发布时,如何获取app的id?下面的代码似乎只获取调用“timemyapp”的shell父ID
######################## #!/bin/sh
时间myapp & myid =“$!”################谢谢当“time myapp”时,我想知道myapp的id,以便向其发送信号
rlcwz9us1#
您可以使用ps查找以该进程ID作为父进程ID的进程:
ps
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进行限制,因此您可以直接
ps -o ppid,pid
$myid
myappid=$(ps --ppid "$myid" -o pid=)
1条答案
按热度按时间rlcwz9us1#
您可以使用
ps
查找以该进程ID作为父进程ID的进程:使用
ps -o ppid,pid
,我们得到一个两列的表,父进程ID在第一列,进程ID在第二列。然后,我们使用AWK从第一列(父)中有$myid
的行中打印第二列值。ps
的GNU实现能够通过内置的父进程ID进行限制,因此您可以直接