我是 PHP 分支的新手,我只是从 PHP.net 复制此代码示例。基本上我有一个工具可以监控设备并将数据保存到数据库中。该工具在后台运行。
这是我的代码:
for(;;)
{
//build connection
$conn = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD);
//select db
mysql_select_db(DB_NAME);
$sql='SELECT * FROM tbl';
$query=mysql_query($sql,$conn);
$zpid=array();
while($res=mysql_fetch_assoc($query))
{
$pid = pcntl_fork();
$execute=0;
if ($pid == -1)
{
echo("could not fork");
}
elseif ($pid)
{
$execute++;
//pcntl_wait($status);
if ($execute>=5)
{
$child=pcntl_wait($status);
if($child)
{
$execute--;
echo 'exited child'.$child;
}
}
}
else
{
$obj=new Monitor($res['ip'],$res['community_string'],$res['id']);
$obj->execute();
//save
$obj->insert_data();
sleep(10);
exit();
}
}
mysql_close($conn);
sleep(60);
}
但是当工具运行时,它会产生一个僵尸进程。我将做些什么来防止我们的服务器上出现这个僵尸或失效进程。请帮我。提前致谢