今回は、PHP でプログラムの実行状況 を判断する手順について詳しく説明します。 PHP がプログラムの実行状況 を判断するための 注意事項 について、実際のケースを見てみましょう。見てください。
Linux システムでは、一部のスクリプトを実行する場合、定期的に実行するにはスクリプトを crontab に配置する必要があることがよくあります。
しばらくすると、プログラムの繰り返し実行によりリソースが過剰に消費されるという問題が発生します。
2 つのメソッドを作成しました:
最初のメソッド: 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 の名前です!
2番目の方法: プロセスをファイルに書き込み、ファイル関数を使用して文字列
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" はプログラムに含まれる文字列です!
Now PHPプログラムは Linux 上でよりスムーズに実行されます。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
array_combine() 配列マージ関数のユースケースの詳細な説明
array_search() 関数の要素値によってキー名を返す手順の詳細な説明
以上がPHPでプログラムの実行状態を確認する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。