#唯一性检查
CheckUnique()
{
pidfile=${filename}.pid #filename为需要检测脚本的文件名
if [ -f ${pidfile} ]; then
pid=`cat ${pidfile} | cut -d' ' -f1`
pid_count=`ps -ef | grep -v grep | awk '{ if ($2==pid) print $0; }' pid=$pid |wc -l`
if [ ${pid_count} -ne 0 ];then
PrintPrompt "This shell script is running, exit 1."
exit 1
fi
fi
echo "$$ $(date +'%Y-%m-%d %H:%M:%S')" > ${pidfile}
}
基本思路:用${filename}.pid存储脚本本次进程的PID。待下一次脚本运行时,读取${filename}.pid存储的PID,与当前系统中所有进程的PID比对。若存在,则进程已存在;否则。进程不存在。