

sh_close()
{
if [ $# -ne 1 ]; then
echo "传递参数个数错误! 请检查!"
return 1
fi
flag=$1
while read a1
do
if [ $flag = "p" ]; then
kill -9 $a1
elif [ $flag = "q" ]; then
ipcrm -q $a1
elif [ $flag = "m" ]; then
ipcrm -m $a1
elif [ $flag = "s" ]; then
ipcrm -s $a1
else
echo "传递参数类型错误! 请检查!"
return 1
fi
done < $CLOSEFNAME
return 0
}
# 设置中间文件
CLOSEFNAME=stop.log
# 关闭进程
>$CLOSEFNAME
#查找进程,排除grep本身,排除可能的tail或vi等对程序的日志操作,用awk提取ps显示的第二列进程号。
ps -fu$LOGNAME | grep program | grep -v grep | grep -v program.log | awk '{print $2}' >>$CLOSEFNAME
sh_close p
if [ $? -ne "0" ]; then
exit 1
fi
echo "关闭进程 成功!"
# 清除中间文件
rm -f $CLOSEFNAME
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/307.html
