/ / 'exec'コマンドはSchTasksの実行時にphpスクリプトの実行をブロックします - php、schtasks

'exec'コマンドは、SchTasks-php、schtasksの実行時にPHPスクリプトの実行をブロックします。

私は次のスクリプト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スクリプトの実行がブロックされます。 このブロックを回避する方法

回答:

回答№1は1

これを試してみてください

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 &");
}
}

回答№2の場合は0

次のようにコマンドラインにアンパサンドを追加することによって、シェルにすぐに戻るように強制する方法があります。 popen

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

これでよければ、結構です。そうでなければ、私に知らせてください。別のスレッドでシェルを起動することに関する問題を解決するもう1つのより複雑な方法があります。