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

问题描述 投票:0回答:1

shell下,当发出“time app”时,如何获取app的id?

下面好像只能获取调用“time myapp”的shell parent id

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

时间我的应用程序& 我的ID =“$!” ##########################

谢谢

当“time myapp”时,我想知道 myapp 的 id,以便我可以向它发送信号

shell signals
1个回答
1
投票

您可以使用

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=)
© www.soinside.com 2019 - 2024. All rights reserved.