У нас есть скрипт PHP (5.5.15) на WAMP с этим:
$wsh_shell = new COM("WScript.Shell");
$retval = $wsh_shell->Run($batch_file_name, 0, false);
$ batch_file_name — это просто файл .bat, который запускает другой файл PHP. 95% времени это работает отлично, и это может запустить файл. Остальные 5% просто не запускаются.
Есть ли способ получить больше информации о том, почему процесс не удалось запустить? $ retval выше содержит только 1 или 0. Есть ли ошибки в журнале wscript.shell где-нибудь? Есть ли какой-нибудь другой журнал, который мог бы дать мне подсказку относительно того, почему происходят эти сбои?
Я смог обойти эту проблему, заставив сценарий использовать планировщик задач Windows для запуска нового экземпляра самого себя. Скрипт имеет цикл, который выполняется около 30 минут. Затем он читает файл конфигурации и проверяет команду «respawn». Если это правда, сценарий теперь будет использовать командную строку schtasks для создания одноразовой задачи, которая запустится снова через 3 секунды. Он работает в течение нескольких часов без проблем.
Других решений пока нет …