Estoy realizando una aplicación en php (no una web) la cual inicia múltiples procesos (a través de distintos hilo) utilizando PCNTL.
Estos nuevos proceso que abre PCNTL pertenecen a www-data (incluidos los nuevos arranques de apache2 para cada hilo) y no pueden ser cerrados si quiera por un administrador, solo puede cerrarlos root.
Código para Multi-Thearing:
    foreach($routes as $route)
    {
        $pid = pcntl_fork();
        if ($pid)
        {
            // we are the parent
            pcntl_wait($status); //Protect against Zombie children
            sleep(2);
        } else
        {
            // we are the child
            exec('sh '.$route.'udpSender.sh 1 >> /tmp/udpSender.log &');
            // SID registry
            $sids[count($sids)] = posix_setsid();
        }
    }Los procesos creados son archivos .sh, los cuales ejecutan otros procesos "demonios", por ello redirecciono la salida 1.
He intentado matar dichos procesos de distintas formas (uno a uno por nombre, por id, tods por nombre, por usuario), pero nunca consigue matarlos a todos.
Intentos fallidos para matar los procesos:
    shell_exec('killall -9 -u www-data');
    shell_exec('skill -9 -u www-data');
    shell_exec('kill -9 nombreProceso');
    shell_exec('pkill -9 nombreProceso'); // Este ha funcionado, pero solo con los hijos que han generado los .sh
    shell_exec('echo rootPass | sudo killall -9 -u www-data');
    $fp = @popen('su --login root --command 'killall -9 -u www-data', "w");
    @fputs($fp, 'rootPass');
    @pclose($fp);
    //Estas pruebas tambien se han echo con otros comandos como matarlos por nombre o por id y no dan resultadoAh, www-data es sudoer:
www-data ALL=(ALL:ALL) ALL
Como dichos scripts estarán ejecutándose en local (no son servidores web, pensados para el acceso a través de internet), no me importa las medidas que haya que tomar mientras que la solución funcione (tales como hacer a www-data super usuario o darle permisos poco convencionales)
P.D: Servidor Debian 7, PHP ver 5.4.20



