Команда ‘exec’ блокирует запуск скрипта php при выполнении SchTasks.

Я использую следующий скрипт php для планирования задачи архива:

$archive_command = 'SchTasks /Create /SC monthly /MO lastday /TN archive'.date('Y_m').' /TR PHP_BINARY." ".$SCRIPT_DIR.archive.php /M * /ST 23:30';
exec("$archive_command 2>&1");

но когда выполнить SchTasks воссоздание той же задачи блокирует выполнение сценария php.
Как избежать этой блокировки?

0

Решение

Попробуй с этим

pclose(popen("$archive_command 2>&1 &", "r"));

ОБНОВИТЬ:
Я выбрал эту функцию с другого сайта:

function bgExec($cmd) {
if(substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
} else {
exec($cmd . " > /dev/null &");
}
}
1

Другие решения

Существует способ заставить оболочку немедленно вернуться, добавив амперсанд в командную строку с помощью popen:

#                            ⇓
popen("$archive_command 2>&1 &", "r");

Если с тобой все в порядке, хорошо. Если нет, дайте мне знать. Существует еще один более сложный способ решения проблемы с запуском оболочки в другом потоке.

0

По вопросам рекламы [email protected]