§ Запрет повторного запуска

$pname = "processwatch.php";
$pnum = (int) `ps aux | grep '$pname' | grep -v 'grep' | grep -v 'sh -c' | grep -v '/bin/sh' | wc -l`;
if ($pnum === 0 || $pnum > 1) die();

§ Функция запрета повторного запуска


// Не запускать скрипт повторно
function block_duplicate($procname)
{
    $cnt = 0;
    $psaux = explode("\n", `ps aux`);
    $reg_procname = preg_quote($procname, '~');

    if (count($psaux) < 16)
        die();

    foreach ($psaux as $ps) {

        if (preg_match('~' . $reg_procname . '\b~', $ps)) {

            if (preg_match('~/bin/sh ~', $ps))
                continue;

            if (++$cnt >= 2)
                die();
        }
    }
}