Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Schritte zur Bestimmung des Programmlaufstatus in PHP
Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Schritte geben, mit denen PHP den Ausführungsstatus eines Programms ermittelt und welche Vorsichtsmaßnahmen PHP zur Bestimmung des Ausführungsstatus hat Hier ist ein praktischer Fall, schauen wir uns das an.
In Linux-Systemen müssen einige Skripte beim Ausführen häufig in crontab abgelegt werden, damit sie regelmäßig ausgeführt werden können.
Nach längerer Zeit gibt es ein Problem, das heißt, das wiederholte Ausführen des Programms verbraucht zu viele Ressourcen.
Zwei Methoden geschrieben:
Die erste: Verwenden Sie den regulären Abgleich unter 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; } } }
, um Folgendes aufzurufen:
if (ifrun('pooy',5)) { die("pooy is running"); }
Hinweis: pooy ist der Name des Programms pooy.php!
Zweite Methode: Schreiben Sie den Prozess in die Datei und verwenden Sie dann die Dateifunktion, um die Zeichenfolge zu lesen und abzugleichen
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"; }
Hinweis: „www /pooy“ ist die im Programm enthaltene Zeichenfolge!
Jetzt läuft das PHP-Programm unter Linux viel reibungsloser.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Details zum Anwendungsfall der Array-Zusammenführungsfunktion array_combine()
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Bestimmung des Programmlaufstatus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!