Home > Article > Backend Development > Detailed explanation of steps to determine program running status in PHP
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"); }
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!
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!