shell下,当发出“time app”时,如何获取app的id?
下面好像只能获取调用“time myapp”的shell parent id
########################## #! /bin/sh
时间我的应用程序& 我的ID =“$!” ##########################
谢谢
当“time myapp”时,我想知道 myapp 的 id,以便我可以向它发送信号
您可以使用
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=)