标签: unix process background defunct
我有一个shell脚本,在其中生成多个子进程(使用&)以并行执行一些操作。我添加了逻辑以确保并行运行的进程不超过10个。
&
进程总数约为3000。其中只有一个进程非常庞大,需要4多个小时才能运行。其他过程较小,且不超过几分钟。
我在脚本末尾使用了wait命令,以确保所有bg进程在脚本退出前都已完成。
wait
但是我发现当父脚本完成执行时,长进程仍在后台运行。现在,进程的ppid显示为“ 1”。
有人可以帮助我了解这里发生了什么问题吗?如何确保子进程不会失效,并保持与父进程的连接。