核心后台脚本程序,防止重复启动造成数据异常


核心后台脚本程序,防止重复启动造成数据异常

#!/bin/bash

#日期及日期时间
date=$(date +%Y-%m-%d)
datetime=$(date +[%Y-%m-%d\ %H:%M:%S])

# 防止重复启动
selfFileName=`echo $0 | cut -d \. -f 1`
newPid=$$

# 后台支撑系统启动失败
if [ -f $selfFileName.pid ]
then
	readPid=$(cat $selfFileName.pid)
	pid=`ps -ax | awk '{ print $1 }' | grep -e "^${readPid}$"`
	if [ $pid ]
	then
		taskFailLog=$datetime' ---Fail--- 后台支撑系统已启动,不能再次启动'
		echo $taskFailLog
		echo $taskFailLog >> $selfFileName.log
		exit
	fi
fi

# 后台支撑系统启动成功
echo $newPid > $selfFileName.pid
taskSuccessLog=$datetime' ---Success--- 后台支撑系统启动成功'
echo $taskSuccessLog
echo $taskSuccessLog >> $selfFileName.log