#!/opt/local/bin/php $bot) { $tmp = exec("ps ".$bot->pid); $bot->active = (int) (strpos($tmp, strval($bot->pid)) !== false); } if (!isset($argv[1])) { echo "Bad action\n"; die; } switch ($argv[1]) { case 'add': $bot_name = (isset($argv[2]) ? ucfirst($argv[2]) : false); if ($bot_name && isset($bots[$bot_name])) { $bot = $bots[$bot_name]; if($bot->active) { echo $bot_name ." is working already\n"; } else { echo "Launching ". $bot_name ."\n"; shell_exec(ROOT_DIR ."/bin/parser/worker_html_grabber.php ". $bot_name ." > /www/parser_data/log/". $bot_name .".log &"); } } else { $bots = custom_shuffle($bots); foreach ($bots as $name => $bot) { if (!$bot->active) { echo "Launching ". $name ."\n"; shell_exec(ROOT_DIR ."/bin/parser/worker_html_grabber.php ". $name ." > /www/parser_data/log/". $name .".log &"); if ($bot_name != 'All') { die; } sleep(1); } } echo "All bots are working.\n"; } break; case 'retire': $bot_name = (isset($argv[2]) ? ucfirst($argv[2]) : false); if ($bot_name && isset($bots[$bot_name])) { $bot = $bots[$bot_name]; if(!$bot->active) { echo $bot_name ." is not working now\n"; } else { echo "Stopping ". $bot_name ."\n"; shell_exec("kill ". $bot->pid); } } else { $bots = custom_shuffle($bots); foreach ($bots as $name => $bot) { if ($bot->active) { echo "Stopping ". $name ."\n"; shell_exec("kill ". $bot->pid); if ($bot_name != 'All') { die; } } } echo "All bots are stopped.\n"; } break; case 'list': foreach($bots as $name => $bot) { echo $name .': '. ($bot->active ? 'working' : 'down') ."\n"; } break; default: echo "Bad action\n"; break; } function custom_shuffle($my_array = array()) { $copy = array(); while (count($my_array)) { $element = array_rand($my_array); $copy[$element] = $my_array[$element]; unset($my_array[$element]); } return $copy; }