如何,在shell脚本中获取由当前脚本中启动的所有后台进程的id
时间: 2024-09-15 13:08:53 浏览: 33
Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法
在shell脚本中,你可以使用`jobs`命令来查看所有正在运行的后台进程,包括由当前脚本启动的。然后通过`bg`命令的ID选项`%n`来获取它们的PID。下面是一个简单的例子:
```bash
#!/bin/bash
# 启动一个后台进程
your_command &
# 使用jobs命令获取所有后台进程列表
echo "Background process IDs:"
jobs -l
# 获取刚刚启动的进程的PID
pid_of_bg_job=$(jobs %1 | awk '{print $2}')
echo "PID of the background job started by this script: $pid_of_bg_job"
```
在这个示例中,`your_command`是你想要在后台运行的实际命令。`jobs -l`会列出所有详细信息,包括PID。`jobs %1`选择最近的一个背景任务,`awk '{print $2}'`用于提取PID。
请注意,`jobs`命令需要你在脚本执行期间仍然保持打开,因为一旦关闭终端或脚本结束,这些信息可能会丢失。
阅读全文