這次給大家帶來PHP判斷程式運行狀態步驟詳解,PHP判斷程式運行狀態的注意事項有哪些,下面就是實戰案例,一起來看一下。
在linux系統中,運行一些指令碼時,經常要放到crontab裡面定時運行。
時間長了就有一個問題,那就是程式重複運行消耗太多的資源,怎麼處理呢?
寫了兩種方法:
第一種:用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; } }}
調用:
if (ifrun('pooy',5)) { die("pooy is running"); }
備忘:pooy是程式pooy.php的名稱!
第二種:把進程寫到檔案裡面,然後用file函數去讀取然後去匹配字串
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";}
註:”www/pooy” 是程式裡麵包含的字串!
現在php程式在linux運行就會通暢多了。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
array_combine()數組合并函數使用案例詳解
array_search()函數按元素值返回鍵名步驟詳解