@tester_toster

Почему демон на php может останавливаться без ошибок на сервере?

Демон запускается по запросу через http через:
shell_exec('/opt/php/7.0/bin/php -c /var/www/..../php.ini worker.php '.implode($arr, ' ').' > log.txt');

В worker.php форкаю:
$pid = pcntl_fork();

if ($pid == -1) { 
    //ошибка 
} elseif ($pid) { 
   exit;
} else { 
   ini_set("log_errors", 1);
   ini_set("error_log", __DIR__."/php-error.log");
   ini_set('display_errors',1);
   ini_set('error_reporting',2047);
   set_time_limit(0);
   ini_set('max_esclusion_time',0);
   error_log( "Hello, errors!" );
   //... выполнение
}

В демоне присутствует связь с mysql через pdo.
На локальном хосте скрипт отработал отлично - за 9 часов выполнил всю нужную работу и завершился,
на сервере vps процесс исчезает через 20 минут, ошибок в логах никаких.
Почему он может останавливаться?
Какие еще могут быть необходимы директивы?
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
VELIK505
@VELIK505
Руководитель департамента profitcentr.com
shell_exec('/opt/php/7.0/bin/php -c /var/www/..../php.ini worker.php '.implode($arr, ' ').' > log.txt');
-c /var/www/..../php.ini - это путь точно до php.ini 7.0 ? лучше запускать через обычный php интерпретатор а потом уже указывать с -c php.ini нужный.
whereis php - покажите вывод
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы