Linux Shell單一實例運行__Linux

來源:互聯網
上載者:User

#!/bin/sh
# **************************************************
# ** Libraries 
# **************************************************
source /etc/profile;
sleep 2
DATE=`date +'%F_%H:%M'`

if [ x$1 != "x"  ] 
then
        DATE=$1
fi

echo $DATE

BASEDIR=`dirname $0`
cd $BASEDIR
#######################################################
TMPFILE=$BASEDIR/isrunning.tmp

echo $TMPFILE
  
# BEGIN--檢查是否有別的執行個體在運行,保證同時只能運行一個執行個體
  
if [ -f $TMPFILE ];then  #判斷臨時檔案是否存在www.linuxidc.com

   echo "Other instance is running!" #存在表明有一個執行個體在運行
   exit 0           #退出本指令碼的執行
else
   touch $TMPFILE   #監時檔案若不存在,就用 touch 建立一個
   chmod 600 $TMPFILE #把臨時檔案屬性改為只建立者可讀寫
fi
  
#用 trap 命令設定一個對訊號的監聽器
#程式運行中當監聽到訊號 0,1,2,3,9,15就會刪除臨時檔案,並退出指令碼執行
#比如說,當指令碼自行運行結束、被使用者 Ctrl+C 掉、被 Kill 掉、終端被關閉
#系統關機或重啟的情況下,都需將臨時檔案刪除,否則指令碼以後都沒機會執行
#在 Linux 的 shell 下可以運行 trap -l 查看到所以訊號

trap "rm -f ${TMPFILE}; exit" 0 1 2 3 9 15
  
# END--檢查是否有別的執行個體在運行,保證同時只能運行一個執行個體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.