Linux中用PHP判断程序运行状态的2个方法_php实例

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

第一个脚本文件

第一种:用linux里面的正则匹配复制代码 代码如下:function ifrun{//下面进行检测,如有一个进程正在运行,则不运行$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{if{return 1;}else{return 0;}}else{if {return 1;}else{return 0; }}}

复制代码 代码如下:

调用:

#!/bin/bash
echo "This is my first bash code!"
exit 0

复制代码 代码如下:if { die; }

重定向符号和数学计算

备注:pooy是程序pooy.php的名称!

复制代码 代码如下:

第二种:把进程写到文件里面,然后用file函数去读取然后去匹配字符串复制代码 代码如下:system('ps -ef |grep wget > /root/pooy.txt');$arr=file;$total=count;for{$count=array();if(stristr !== FALSE) {//echo '"earth" not found in string';$count[]='no'; break;}}if{echo "A same programs are running";exit();}else{echo "start__________________________________________________";}注:”www/pooy” 是程序里面包含的字符串!

#!/bin/bash
echo -n "The time and date are: "
date
value1=100  #等号前后不允许出现空格
value2=$value1
echo -n "value1="
echo $value1
echo -n "value2="
echo $value2
ls -l | sort > out.txt   #管道符号(|)和重定向输出符号>
ls -l >> out.txt   #重定向追加输出符号>>
echo -n  "wc<out.txt:"
wc < out.txt  #重定向输入符号<
echo "sort<<EOF ... EOF"
sort << EOF  #内置输入重定向<<
`date`
EOF
#数学计算
echo -n "expr进行计算:1+5="
expr 1+5
echo -n "使用方括号进行计算:1+5="
echo $[1+5]
echo "使用bc计算器进行浮点运算"
var1=100
var2=200
var3=`echo "scale=4;$var1/$var2" | bc`
echo "$var1 / $var2 = $var3"
var4=71
var5=`bc<<EOF
scale=4
a1=($var1*$var2)
b1=($var3*$var4)
a1+b1
EOF`
echo "var5=$var5"
exit 0

现在php程序在linux运行是否通畅多了呢?

使用test命令

复制代码 代码如下:

#!/bin/bash
#使用test命令
var1=10
var2=100
if [ $var1 -gt $var2 ]
then
    echo "var1 grate var2"
else
    echo "var2 grate var1"
fi
#只能比较整数
test_user=hanxi
if [ $USER = $test_user ]
then
    echo "Welcome $test_user"
fi
str1=Hanxi
str2=hanxi
if [ $str1 > $str2 ]
then
    echo "$str1 > $str2"
else
    echo "$str1 < $str2"
fi
if [ -n $str1 ]
then
    echo "The string '$str1' is not empty"
else
    echo "the string '$str1' is empty"
fi
#检查文件目录
if [ -d $HOME ]
then
    echo "your Home dir exists"
    cd $HOME
    ls -a
else
    echo "there's a problem with your HOME dir"
fi
pwfile=/etc/shadow
if [ -f $pwfile ]
then
    if [ -r $pwfile ]
    then
        tail $pwfile
    else
        echo "Sorry, I'm unable to reas the $pwfile file "
    fi
else
    echo "Sorry, the file $pwfile doesn't exist"
fi
if [[ $USER == h* ]]
then
    echo "Hello $USER"
else
    echo "Sorry, I don't know you"
fi

循环语句

复制代码 代码如下:

#!/bin/bash
for file in /home/hanxi/*
do
    if [ -d "$file" ]
    then
        echo "$file is a directory"
    elif [ -f "$file" ]
    then
        echo "$file is a file"
    fi
done
var1=10
while [ $var1 -gt 0 ]
do
    echo $var1
    var1=$[ $var1 - 1 ]
done
var1=100
until [ $var1 -eq 0 ]
do
    echo $var1
    var1=$[ $var1 - 25 ]
done
#文件数据的循环
IFSOLD=$IFS
IFS=$'n'
for entry in `cat /etc/passwd`
do
    echo "Values in $entry -"
    IFS=:
    for value in $entry
    do
        echo " $value"
    done
done | more
for file in /home/hanxi/*
do
    if [ -d "$file" ]
    then
        echo "$file is directory"
    elif
        echo "$file is a file"
    fi
done > output.txt

读取参数

本文由金沙官网线上发布于编程,转载请注明出处:Linux中用PHP判断程序运行状态的2个方法_php实例

您可能还会对下面的文章感兴趣: