#!/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--檢查是否有別的執行個體在運行,保證同時只能運行一個執行個體