ホームページ  >  記事  >  バックエンド開発  >  PHPでプログラムの実行ステータスを確認する方法

PHPでプログラムの実行ステータスを確認する方法

WBOY
WBOYオリジナル
2016-07-25 09:13:111648ブラウズ

Linux システムでは、一部のスクリプトを実行する場合、定期的に実行するにはスクリプトを crontab に配置する必要があることがよくあります。 時間が経つと、プログラムを繰り返し実行するとリソースが過剰に消費されるという問題が発生します。

2 つのメソッドを書きました: 1 つ目: Linux で通常のマッチングを使用する

  1. function ifrun($clsname,$bf = 0)

  2. {
  3. //以下で検出します。実行中のプロセスがある場合、実行されません
  4. $str=shell_exec("/bin /ps ax > /home/root/".$clsname."_run.txt");
  5. $str=shell_exec("/bin/grep -c '".$clsname.".php' /home/root/ ".$clsname."_run.txt");

  6. if($bf >0)

  7. {
  8. if($str >=$bf)
  9. {
  10. return 1;
  11. }
  12. else
  13. {
  14. return 0;
  15. }
  16. }
  17. else
  18. {
  19. if ($str>=2)
  20. {
  21. return 1;
  22. }
  23. else
  24. {
  25. return 0; }
  26. }
  27. }
  28. < ;/p>
コードをコピー
電話:

if (ifrun('pooy',5)) { die("pooy が実行中です"); 注: pooy はプログラム pooy.php の名前です。 2 番目の方法: プロセスをファイルに書き込み、ファイル関数を使用して文字列を読み取って照合します。

  1. system('ps -ef |grep wget > /root/pooy.txt');

  2. $arr=file('/root/pooy.txt');
  3. $total =count($arr);
  4. for($i=0;$i $count=array();
  5. if(stristr($arr[$i],'www/pooy' ) !== FALSE) {
  6. //echo '"earth" が文字列内に見つかりません';
  7. $count[]='no';
  8. Break;
  9. }
  10. }

  11. if( count($count) >= 1 )

  12. {
  13. echo "同じプログラムが実行されています";
  14. exit();
  15. }else
  16. {
  17. echo "start________________________________________________";
  18. }

Copyコード
注: 「www/pooy」はプログラムに含まれる文字列です!

これで、Linux 上で php プログラムがよりスムーズに実行されるようになります。

編集者の要約: Linux システムでいくつかの単純な PHP プログラム、特に定期的に実行する必要がある PHP プログラムをデバッグする場合、crontab は Windows でのスケジュールされたタスクに似ていますが、Win での場合よりも便利であるため、推奨されます。もっと試してみてください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。