Архив метки: timeout

Как завершить скрипты по таймауту

Задача: ряд скриптов иногда «зависают». Есть два варианта — переделать скрипт, чтобы не «зависал». Не всегда возможно. Второй вариант: отслеживать время работы скрипта, и по какому то предельному значению времени выполнения — убивать. Например так:

#!/usr/local/bin/php
<?php
$timeout=100; // время после которого скрипт считаем зависшим
$res=`ps -ax | grep sos | awk '{print $1,$4}'`;

$resa=explode("\n",$res);

foreach ($resa as $value) {
 if ($value!=""){
  $va=explode(" ",$value);
  $pid=$va[0];
  $timea=explode(":",$va[1]);
    if (isset($timea[1])==true){
      $time=$timea[0];
      echo "PID: $pid, TIME: $time\n";
      if ($time>$timeout){
       `kill $pid`;
      };
    };
  };
};
?>