$logPath/judge_scheduler_".date("YmdHis").".log 2>&1 &"."\n"); fwrite($bat_file, "EXIT"."\n"); fclose($bat_file); } $WshShell = new COM("WScript.Shell"); // next line designed for Windows os with IIS web server. It will probably fail if Windows using apache web server try { $oExec = $WshShell->run($bat_filename,0,false ); // THIS SHOULD WORK for windows using IIS as webserver. } catch (Exception $e) { // if the wshshell-> run fails then we are perhaps running an apache server and the next might work. // But, the call in judges_sa_launcher_apache.php does not return until completed so I use this logic // to inform the user how to get to the status page. // CAUTION: This path REQUIRES that php be compiled with CLI option and other things Dennis does not understand! // This may work for some servers. NEVER use this on a shared server - you will hog it and get your account suspended. echo " This server requires manual intervention to start the scheduler and to navigate to the Status page.
"; echo " The scheduler will run at normal priority - which in some servers may present a sluggish response.
"; echo " Please follow these instruction exactly:
"; echo " 1. Click 'Start the Scheduler' link ONCE. (You will not see any change in this screen)
"; echo " *** DO NOT Click 'Start the Scheduler' more than once!
"; echo " 2. Click 'Check the Status' link and wait. (You will be taken to the Status Page. There, you should see that the scheduler is running.)
"; echo "
Start the Scheduler

"; echo "Check the Status
"; exit; // This is the call that works - but it does not return until judges_sa is finished so... I launch it from another window // exec("php judges_sa.php >$logPath/judge_scheduler_".date("YmdHis").".log 2>&1 &"); } } else{ // *nix server //add PHP_SELF just so when we do a process listing on the server we know which fair its running for //the argument does not get used by the script at all exec("nice php judges_sa.php {$_SERVER['PHP_SELF']} > $logPath/judge_scheduler_".date("YmdHis").".log 2>&1 &"); } usleep(1500000); // 1.5 second to allow the judges_sa to update the % status to 0% otherwise the status page will think its not running if it gets there too soon header("Location: judges_scheduler_status.php"); exit; ?>