小编yw5*_*643的帖子

如何在 bash shell 脚本中获取子进程的 PID 到父进程?

我的shell脚本如下:

#!/bin/bash
./process1 #It will create a sub process: sub_process1
while [ condition ]; do
    break
done
kill -9 process1 and sub_process1
Run Code Online (Sandbox Code Playgroud)

在我的脚本中,它将创建一个进程:process1。process1 将创建一个子进程:sub_process1。
在脚本完成之前,需要杀死process1和sub_process1。
杀死 process1 很容易,因为它会将 PID 写入文件。但 sub_process1 不会。由于 sub_process1 是第三方组件,因此我无法触及源代码。
有一个解决方案可以获取sub_process1的PID:

  1. 使用命令枚举所有进程ps aux
  2. 使用命令获取每个进程的 PPID(父进程 ID)ps -f [PID]。如果PPID等于process1的PID,则该进程一定是sub_process1。
    上面的解决方案有点复杂。有没有一个简单的解决方案可以获取子进程ID?
    多谢。

linux process shell-script

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×1

process ×1

shell-script ×1