Home  >  Article  >  Backend Development  >  Detailed explanation of steps to determine program running status in PHP

Detailed explanation of steps to determine program running status in PHP

php中世界最好的语言
php中世界最好的语言Original
2018-05-21 11:11:382394browse

This time I will bring you a detailed explanation of the steps for PHP to determine the running status of the program. In Linux systems, when running some scripts, they often need to be placed in crontab to run regularly. After a long time, there will be a problem, that is, the repeated running of the program consumes too many resources. How to deal with it?

Write two methods:

The first one: Use regular matching in Linux

function ifrun($clsname,$bf = 0)
{
    //下面进行检测,如有一个进程正在运行,则不运行
     $str=shell_exec("/bin/ps ax > /home/root/".$clsname."_run.txt");
    $str=shell_exec("/bin/grep -c '".$clsname.".php' /home/root/".$clsname."_run.txt");
    if($bf >0)
    {
        if($str >=$bf)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
    else
    {
        if ($str>=2)
        {
           return 1;
        }
        else
        {
           return 0; 
        }
    }
}

Call:

if (ifrun('pooy',5)) { die("pooy is running"); }

Note: pooy is the name of the program pooy.php!

Second: Write the process into the file, then use the file function to read and match the

string

system('ps -ef |grep wget > /root/pooy.txt');
$arr=file('/root/pooy.txt');
$total=count($arr);
for($i=0;$i<$total;$i++){
  $count=array();
   if(
stristr
($arr[$i],'www/pooy') !== FALSE) {
  //echo '"earth" not found in string';
      $count[]='no';
      break;
  }
}
if(count($count) >= 1 )
{
    echo "A same programs are running";
    exit();
}else
{
    echo "start";
}
Note: "www/pooy" is the string contained in the program!
Now the PHP program will run much more smoothly on Linux.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

array_combine() array merge function usage case details

##array_search() function returns by element value Detailed explanation of key name steps

The above is the detailed content of Detailed explanation of steps to determine program running status in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn