第一个
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}