...
Below function enables you to check number of process that based on "PHP".
Code Block |
---|
function count_process($process_name) { // check process in the process list $bot_count_cmd = "ps aux | grep \"{$process_name}\" | wc -l"; $bot_count=shell_exec($bot_count_cmd); $bot_count=intval( trim($bot_count) )/2; // you may need to tune the number based on your running environment return $bot_count; } |
Note that the working environment above is based on that all the commands are remotely managed and executed by ssh, so all the PHP functions are composed of "bash -c cd..." and the actual php functions like below that is why $bot_count is divided by two.
Code Block |
---|
root 1276 0.0 0.0 113284 1604 ? Ss 17:45 0:00 bash -c cd "/pub/production/_bot" && php cdn.php
root 1295 1.5 0.1 539480 44648 ? S 17:45 0:45 php cdn.php
root 2632 0.0 0.0 113284 1600 ? Ss 17:50 0:00 bash -c cd "/pub/production/_bot" && php cdn.php
root 2651 0.5 0.1 613684 44888 ? S 17:50 0:13 php cdn.php
root 4062 0.0 0.0 113284 1596 ? Ss 15:50 0:00 bash -c cd "/pub/production/_bot" && php cdn.php
root 4086 1.0 0.1 539388 46224 ? D 15:50 1:44 php cdn.php |
Below is an application example to run certain function by the number of bots running on the system.
Code Block |
---|
// check cdn.php in the process list $bot_count=process_count("php cdn.php"); // we will just keep max 5 cdn bots if (($bot_count)<5) $m_cms->cdn_update( 60*20); |
Below is an application example to exit by the number of bots running on the system.
Code Block |
---|
// check encoding.php in the process list $bot_count=process_count("php encoding.php"); // we will just keep max 2 encoding bots if (($bot_count)>2) exit; |
...