第一个
processName="test4.sh"
processNum=`ps -aef |grep "${processName}" | grep -v grep | wc -l`
if [ "${processNum}" -gt "2" ]; then
echo "已经有脚本在运行,本脚本不支持多实例运行${processNum}"
exit 1
fi
第二个
#!/bin/ksh
RUNDIR=`dirname $0`
PIDFILE="${RUNDIR}/$0.pid"
if [ -s ${PIDFILE} ]; then
echo "脚本已经在运行,不重复运行,退出."
exit 1
fi
echo $$ > ${PIDFILE}
<各种业务处理逻辑>
cat /dev/null > ${PIDFILE}
第三个
#!/bin/ksh
RUNDIR=`dirname $0`
PIDFILE="${RUNDIR}/$0.pid"
if [ -s ${PIDFILE} ]; then
SPID=`cat ${PIDFILE}`
if [ -e /proc/${SPID}/status ]; then
echo "脚本已经在运行,不重复运行,退出."
exit 1
fi
cat /dev/null > ${PIDFILE}
fi
echo $$ > ${PIDFILE}
#各种业务逻辑
cat /dev/null > ${PIDFILE}