Linux システムでは、一部のスクリプトを実行する場合、定期的に実行するにはスクリプトを crontab に配置する必要があることがよくあります。
時間が経つと、プログラムを繰り返し実行するとリソースが過剰に消費されるという問題が発生します。
2 つのメソッドを書きました:
1 つ目: 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; }
- }
- }
- < ;/p>
-
-
コードをコピー
電話:
if (ifrun('pooy',5)) { die("pooy が実行中です");
注: pooy はプログラム pooy.php の名前です。
2 番目の方法: プロセスをファイルに書き込み、ファイル関数を使用して文字列を読み取って照合します。
system('ps -ef |grep wget > /root/pooy.txt');
- $arr=file('/root/pooy.txt');
- $total =count($arr);
- for($i=0;$i $count=array();
- if(stristr($arr[$i],'www/pooy' ) !== FALSE) {
- //echo '"earth" が文字列内に見つかりません';
- $count[]='no';
- Break;
- }
- }
if( count($count) >= 1 )
- {
- echo "同じプログラムが実行されています";
- exit();
- }else
- {
- echo "start________________________________________________";
- }
-
-
-
Copyコード
注: 「www/pooy」はプログラムに含まれる文字列です!
これで、Linux 上で php プログラムがよりスムーズに実行されるようになります。
編集者の要約:
Linux システムでいくつかの単純な PHP プログラム、特に定期的に実行する必要がある PHP プログラムをデバッグする場合、crontab は Windows でのスケジュールされたタスクに似ていますが、Win での場合よりも便利であるため、推奨されます。もっと試してみてください。
|