function onShutdown()
{
    global $parser;
    StateUtils::resetBusy(BUSY_FILENAME);
    // Проверка наличия новых ссылок на страницы
    if ($parser->hasUrls()) {
        $parser->items = array();
        $parser->pageContent = "";
        StateUtils::save(STATE_FILENAME, $parser);
    }
}
function onShutdown()
{
    global $Parser;
    global $Rubrics;
    StateUtils::resetBusy(BUSYSTAT_FILE);
    // Сохранить состояние - если есть еще урлы страниц
    if (isset($Parser)) {
        if ($Parser->hasUrls()) {
            $Parser->items = array();
            $Parser->pageContent = "";
            StateUtils::save(PARSERSTATE_FILE, $Parser);
        } else {
            print "No more pages.\n";
            $Rubrics->setLoaded($Parser->id, true, $Parser->processId);
            //$Rubrics->freeRubric($Parser->id);
        }
        //$Parser->_IContentGrabber();
    }
}
function onShutdown()
{
    StateUtils::resetBusy(CALC_REALNUMS_STAT);
}
<?php

chdir("/***/ResearchGrabber");
require_once "prepend.php";
require_once "ProxiesService.php";
require_once "FileUtils.php";
require_once "StateUtils.php";
define("BUSY_FILENAME", "data/isBusy.dat");
$proxyService = new ProxiesService();
FileUtils::saveData("countersStat.log", $proxyService->getCountersState());
$proxyService->resetAll();
StateUtils::resetBusy(BUSY_FILENAME);
include "ExportData.php";
 function addNextNums($num)
 {
     $sql = "\n\t\t\tUPDATE day_counters SET num = num + ? WHERE id = ?\n\t\t";
     $res =& $this->db->query($sql, array($num, StateUtils::getProcessNum() + 1));
     return $res;
 }