小编chi*_*anc的帖子

PID的等待和回收

我担心在脚本中,我将调用一个函数的并行版本在后台运行,然后发出等待。

a () {
  sleep $1
}

a 10 &
PIDs="$PIDs $!"
a 50000 &
PIDs="$PIDs $!"

wait $PIDs   
Run Code Online (Sandbox Code Playgroud)

问题是第一个函数调用需要 10 秒(睡眠 10),但第二个需要将近 14 小时(睡眠 50000)。

我担心第一次调用的 PID 将被回收,14 小时后,当第二次调用终止时,该 PID 正在被另一个进程使用,并将阻止脚本继续。还是等待调用完成后立即从列表中删除第一个 PID,只是简单地等待第二个进程完成而不是等待它们两个都在最后完成?

shell process background-process

3
推荐指数
1
解决办法
804
查看次数

标签 统计

background-process ×1

process ×1

shell ×1