/ / 'exec' comando bloqueia a execução do script php quando executar SchTasks - php, schtasks

'exec' comando bloqueia a execução do script php quando executar SchTasks - php, schtasks

Eu uso o seguinte script php para agendar tarefa de arquivo:

$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");

mas quando executar SchTasks para recriar a mesma tarefa, bloqueia a execução do script php. Como evitar esse bloqueio?

Respostas:

1 para resposta № 1

Tente com isso

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

ATUALIZAR: Eu escolhi esta função de outro site:

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

0 para resposta № 2

Há uma maneira de forçar o shell a retornar imediatamente anexando o E comercial à linha de comando com popen:

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

Se estiver tudo bem com você, tudo bem. Se não, me avise. Há outra maneira mais complicada de resolver um problema com o início do shell em outro thread.