Viewing file: poll.php (2.42 KB) -rw-rw-r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
$time_start = microtime(true);
$clave_semaforo = 34; // Clave de ejemplo para el semaforo
$sem_id = sem_get ($clave_semaforo, 1);
print "Se obtuvo el ID de semaforo $sem_id\n";
print "��������������������������������������������������������������������������������Esperando al semaforo...\n";
flush();
if (! sem_acquire ($sem_id))
die ('������������������������Ocurrio un fallo esperando al semaforo.\n');
$time_end = microtime(true);
$time = $time_end - $time_start;
$hora= date ('H:i:s');
if ($time > 480)die("\n caducado. $time segundos a las $hora\n");
print "��$time_start�$time_end���������������$time �������������������� \n Se obtuvo el permiso para disponer de la via a las " .
date ('H:i:s') . "\n";
flush();
date_default_timezone_set('Europe/Madrid');
//controlando que no salga error En caso contrario, reinicia lnmp
for ($f=1;$f<=2;$f++){
echo chr(10)."preparando la conexion".chr(10);
flush();
$handle_fail=fopen("/home/wwwroot/logs/poll_fail.log","r+");
$handle=fopen("http://127.0.0.1/automatas/test.php","r");
echo " pasada $f".chr(10);
flush();
if (!$handle){
exec ("/root/lnmp stop");
exec ("/root/lnmp start");
die ("no se pudo conseguir");
}
$contenido="-----".fread($handle, 1000);
echo "-->longitud ".strlen(trim($contenido)).chr(10);
flush();
if (strpos($contenido,"nginx") or strpos($contenido,"mysqld.sock") or strpos($contenido,"BBDD") or strpos($contenido,"failed") or strlen(trim($contenido))<10) {
echo "encontrado fallo \n";
// suponemos que esta mal, reiniciamos.
exec ("/home/scripts/lnmp-RESTART.SH");
exec ("echo 'fallo en script. ".date("Y-m-d H:i")." \n $contenido \n ' >> /var/log/fallo.log");
//a�adimos 1 al contador. si llegamos a 5,restart (5*30 segundos)
$fallo=fread($handle_fail,128);
$fallo=$fallo+1;
if ($fallo>=6)
exec ("echo '".date("Y-m-d H:i:s").chr(10)." fallo=".$fallo."'>> /home/wwwroot/logs/poll_fail_historico.log");
exec ("echo '0' > /home/wwwroot/logs/poll_fail.log");
exec ("reboot");
sleep(30);
//$f=$f+10;
}else{
exec ("echo '0' > /home/wwwroot/logs/poll_fail.log");
echo "TODO OK \n";
flush();
}
//echo $f."-".$contenido.chr(10);
flush();
fclose($handle);
unset($handle);
sleep(10);
}
?>
|