最近我遇到了一个恼人的问题。我有一组脚本,它们将在大约 10 台运行 Redhat 的 Linux 服务器上管理和启动一定数量的并行进程。使用一个文件来保存所有进程的状态。根据情况,如果旧进程结束并且尚未达到最大进程数,则将启动新进程。
实际上它运行得很好。但最近,至少最近两次,即使子进程已正确结束,调用脚本也会变成无效状态。对我来说真正奇怪的是,这些僵尸脚本会在一段时间后恢复正常(我不知道具体需要多长时间,我猜是几分钟)。这会减慢整个任务集的处理时间。
我能做什么?有什么提示吗?谢谢!
答案1
如果您将任何进程发送到后台,则使用“wait”命令等待它们退出,然后再退出父进程。否则父进程将成为僵尸进程。
如果您仍然需要退出父进程但保持子进程运行,则使用“setsid”命令将它们与父进程分离。