很多用cron定時執(zhí)行的shell腳本可能會由于各種原因執(zhí)行很久,會有必要在運行的時候先檢查一下自身是否還在運行。本文提供的linux shell腳本用以檢查以命令sh ...來執(zhí)行的shell腳本。要對其他東西進行唯一性檢查,可以稍微修改一下源代碼。
代碼如下:
# 檢查通過sh命令執(zhí)行的shell腳本是不是還在執(zhí)行當中,避免重復執(zhí)行.
# 把這段代碼放在需要保證唯一性的程序頭部即可
# 注意,如果直接把此腳本放到cron里面執(zhí)行的話,必須再grep -v " -c sh "以排除由cron產(chǎn)生的進程!
checkitem="$0"
let procCnt=`ps -A --format='%p%P%C%x%a' --width 2048 -w --sort pid|grep "$checkitem"|grep -v grep|grep -v " -c sh "|grep -v "$$" | grep -c sh|awk '{printf("%d",$1)}'`
if [ ${procCnt} -gt 0 ] ; then
echo "$0腳本已經(jīng)在運行[procs=${procCnt}],此次執(zhí)行自動取消."
exit 1;
fi
更多信息請查看IT技術(shù)專欄