ホームページ > バックエンド開発 > PHPチュートリアル > php判断linux下程序问题实例_php技巧

php判断linux下程序问题实例_php技巧

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-05-16 20:11:17
オリジナル
1718 人が閲覧しました

本文实例讲述了php判断linux下程序问题。分享给大家供大家参考。具体如下:

有时候在服务器上面写一些脚本的时候,经常要放到crontab里面定时运行。时间长了就有一个问题,那就是程序重复运行消耗太多的资源,怎么处理呢?下面璞玉写了两种方法.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

//第一种:用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程序设计有所帮助。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート