检测某个php进程shell脚本
一.主要shell代码
#!/bin/bash
executePath=$(readlink -f $(dirname $0))
executeLog=`readlink -f $executePath/check.log`
envPath=`readlink -f $executePath/../../env.sh`
source $envPath
set -a; source /etc/environment; set +a;
scriptIndex=`readlink -f $executePath/../console/index.php`
proccessName=common/test/index
proccessNum=`ps aux|grep -v grep|grep $proccessName|wc -l`
needNum=1
if [ $1 ]
then
proccessName=$1
fi
if [ $2 ]
then
needNum=$2
fi
function setProccessNum
{
proccessNum=`ps aux|grep -v grep|grep $proccessName|wc -l`
}
function stop_pro()
{
pids=$(ps aux|grep -v grep|grep common/test/index|awk '{ print $2 }')
for pid in $pids
do
setProccessNum
if [ $proccessNum -eq $needNum ]
then
break
fi
kill -9 $pid
done
}
function start_pro()
{
setProccessNum
while (( $proccessNum < $needNum ))
do
/usr/local/php/bin/php $scriptIndex $proccessName &
setProccessNum
done
}
if [ $proccessNum -lt $needNum ]
then
echo "实际进程数为:"$proccessNum"需要进程数为:"$needNum"增加进程数..."
start_pro
elif [ $proccessNum -gt $needNum ]
then
echo "实际进程数为:"$proccessNum"需要进程数为:"$needNum"减少进程数..."
stop_pro
sleep 1
start_pro
fi
二.使用说明
- 将代码写入文件,路径与项目需要自行调整
- 加入定时linux任务检测