Shell腳本避免重復(fù)執(zhí)行的方法
很多用cron定時(shí)執(zhí)行的shell腳本可能會(huì)由于各種原因執(zhí)行很久,會(huì)有必要在運(yùn)行的時(shí)候先檢查一下自身是否還在運(yùn)行。本文提供的linux shell腳本用以檢查以命令sh ...來執(zhí)行的shell腳本。要對(duì)其他東西進(jìn)行唯一性檢查,可以稍微修改一下源代碼。
# 檢查通過sh命令執(zhí)行的shell腳本是不是還在執(zhí)行當(dāng)中,避免重復(fù)執(zhí)行.
# 把這段代碼放在需要保證唯一性的程序頭部即可
# 注意,如果直接把此腳本放到cron里面執(zhí)行的話,必須再grep -v " -c sh "以排除由cron產(chǎn)生的進(jì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)在運(yùn)行[procs=${procCnt}],此次執(zhí)行自動(dòng)取消."
exit 1;
fi
相關(guān)文章
shell查找當(dāng)前目錄下大于1M的文件的三種方法分享
查找當(dāng)前目錄下大于1M的文件的三種方法,有需要的朋友可以參考下2013-02-02shell?數(shù)組?${array[@]}?${array[*]}的使用及區(qū)別解析
shell中用括號(hào)來表示數(shù)組,數(shù)組元素間使用空格隔開,這篇文章主要介紹了shell?數(shù)組?${array[@]}?${array[*]}的使用及區(qū)別,需要的朋友可以參考下2023-06-06ubuntu修改terminal終端的主機(jī)名的實(shí)現(xiàn)方法
這篇文章主要介紹了ubuntu修改terminal終端的主機(jī)名的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助大家,需要的朋友可以參考下2017-08-08阿里云主機(jī)一鍵安裝lamp、lnmp環(huán)境的shell腳本分享
這篇文章主要介紹了阿里云主機(jī)一鍵安裝lamp、lnmp環(huán)境的shell腳本分享,需要的朋友可以參考下2014-07-07shell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)
下面小編就為大家?guī)硪黄猻hell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04shell腳本實(shí)現(xiàn)磁盤監(jiān)控系統(tǒng)
這篇文章主要介紹了shell腳本實(shí)現(xiàn)磁盤監(jiān)控系統(tǒng),幫助大家更好的利用shell腳本管理數(shù)據(jù),感興趣的朋友可以了解下2020-09-09