linux 启动停止进程,停止Linux进程运行脚本

DIRPATH="`dirname $0`"

LOGFILE="$DIRPATH/StopProcess.log"

echo "$0 start." >>$LOGFILE

function KillExistScript()

{

local _ProcessName=$1

local _ProcessPID=""

local _ProcessAllPID=""

local _Ret=0

if [ $# -ne 1 ]; then

echo "[$FUNCNAME($LINENO)]The number of parameter is error,you put:$#,you parameter: $@" >>$LOGFILE

return 1

fi

#记录进程自身PID

ProcessPID=$$

echo "[$FUNCNAME($LINENO)]Current ProcessName is $0 ProcessPID=$ProcessPID." >>$LOGFILE

echo "[$FUNCNAME($LINENO)]You want kill ProcessName is $_ProcessName." >>$LOGFILE

echo "==========" >>$LOGFILE

echo "`ps -ef | grep -w $_ProcessName| grep -v grep | grep -v $ProcessPID`" >>$LOGFILE

echo "==========" >>$LOGFILE

_ProcessAllPID=`ps -ef | grep -w "$_ProcessName" | grep -v "grep"| grep -v $ProcessPID| awk '{print $2}' `

#记录目录进程所有PID

echo "[$FUNCNAME($LINENO)]_ProcessAllPID=`echo $_ProcessAllPID`" >>$LOGFILE

if [ -n "$_ProcessAllPID" ]; then

echo "$_ProcessAllPID" |

while read _ProcessPID

do

if [ -z "$_ProcessPID" ]; then

break

else

#杀死进程

echo "[$FUNCNAME($LINENO)]Kill process $_ProcessName, PID is $_ProcessPID." >>$LOGFILE

kill -9 "$_ProcessPID"  >/dev/null  2>&1

if [ $? -ne 0 ]; then

_Ret=1

echo "[$FUNCNAME($LINENO)]kill -9 $_ProcessPID failed." >>$LOGFILE

continue

fi

fi

done

fi

return $_Ret

}

if [ -z "$1" ]; then

echo "Usage:1. $0 processname

2. $0 scriptname.sh"

echo "The paremeter ProcessName is null." >>$LOGFILE

exit 1

else

ProcessName=`echo $1`

echo "The ProcessName is $ProcessName." >>$LOGFILE

fi

KillExistScript $ProcessName

iRet=$?

if [ $iRet -eq 0 ]; then

echo "KillExistScript $ProcessName succeed." >>$LOGFILE

fi

echo "$0 exit." >>$LOGFILE

exit $iRet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值