#AutoRunStart_local
#!/bin/bash
#ローカル用
RUN_HOME=/d/soft/autorun/rel00/ap-serv/AutoRun
# シェル名
SHELLNAME=`basename $0`
#LANG=ja_JP.UTF-8 ; export LANG
HEAP_SIZE=64M ; export HEAP_SIZE
#ローカル用
JAVA_HOME="/c/Program Files (x86)/Java/jdk1.7.0_45" ; export JAVA_HOME
CONF_ROOT=$RUN_HOME/conf ; export CONF_ROOT
PROPERTY_FILE=AutoRun.conf ; export PROPERTY_FILE
HTTP_TIMEOUT=30 ; export HTTP_TIMEOUT
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # ${SHELLNAME}#処理を開始します。"
# 2重起動防止チェック
#ローカル用
ret=`ps -ef | grep "$JAVA_HOME"`
status=$?
if [ $status = 0 ]; then
echo `date +"%Y/%m/%d %H:%M:%S"` "ERROR # 既にプロセスは起動しています。処理を終了します。"
exit 1
fi
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # プロセスを起動します。"
#ローカル用
CLASSPATH=$RUN_HOME/lib/autorun.jar:$RUN_HOME/lib/ra.jar:$RUN_HOME/lib/log4j-1.2.17.jar:$RUN_HOME/lib/tal.jar:$RUN_HOME/lib/commons-httpclient-2.0-rc2.jar:$RUN_HOME/lib/commons-logging.jar:$RUN_HOME/lib/commons-lang-2.0.jar
export CLASSPATH
#ローカル用
"$JAVA_HOME"/bin/java
-server
-Xms${HEAP_SIZE} -Xmx${HEAP_SIZE}
-classpath $CLASSPATH
-DConfigRoot=$CONF_ROOT
-DAutoRunProperty=$CONF_ROOT/$PROPERTY_FILE
-DPXS_HTTP_TIMEOUT=$PXS_HTTP_TIMEOUT
"jp.co.autorun.AutoRun"
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # ${SHELLNAME}#処理を終了しました。"
exit 0
#AutoRunEnd_local
#!/bin/bash
#ローカル用
RUN_HOME=/d/soft/autorun/ap-serv/AutoRun
CONF_ROOT=$RUN_HOME/conf ; export CONF_ROOT
PROPERTY_FILE=AutoRun.conf ; export PROPERTY_FILE
EVENT_FILE_KEY=EndEventFilepath ; export EVENT_FILE_KEY
#ローカル用
JAVA_HOME="/c/Program Files (x86)/Java/jdk1.7.0_45" ; export JAVA_HOME
# シェル名
SHELLNAME=`basename $0`
# 開始ログ
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # ${SHELLNAME}#処理を開始します"
# プロセスID取得
#ローカル用
ps -ef | grep "$JAVA_HOME" | awk 'BEGIN {}
{
printf "RUN_PROC_ID=%s; export RUN_PROC_ID\n", $2;
if ( NR > 1 ) {
printf "RUN_PROC_ID=CAN_NOT_SPECIFY_PROCESS; export RUN_PROC_ID\n";
}
}' > tmptmptmp_$$
# 停止指示ファイルパス取得
cat $CONF_ROOT/$PROPERTY_FILE | awk -F'=' 'BEGIN { KEYNAME=ENVIRON["EVENT_FILE_KEY"]; }
{ len = length($1);
if ( len > 3 ) {
if ( $1 == KEYNAME ) {
printf "EVENT_FILE_PATH=%s; export EVENT_FILE_PATH\n", $2;
}
}
}' >> tmptmptmp_$$
RUN_PROC_ID=NO_PROCESS
EVENT_FILE_PATH=0
. ./tmptmptmp_$$
rm tmptmptmp_$$
# プロセス存在チェック
if [ $RUN_PROC_ID = NO_PROCESS ]; then
echo `date +"%Y/%m/%d %H:%M:%S"` "WARN # プロセスが存在しません。処理を終了します。"
exit 1
fi
# プロセス特定チェック(対象プロセスが複数ある場合)
if [ $RUN_PROC_ID = "CAN_NOT_SPECIFY_PROCESS" ]; then
echo `date +"%Y/%m/%d %H:%M:%S"` "ERROR # 停止プロセスが特定できません。処理を終了します。"
exit 1
fi
if [ $EVENT_FILE_PATH = 0 ]; then
echo `date +"%Y/%m/%d %H:%M:%S"` "ERROR # $CONF_ROOT/$PROPERTY_FILE に $EVENT_FILE_KEY の定義がありません。処理を終了します。"
exit 1
fi
# 停止待機時間を設定(停止指示ファイル監視間隔 + RUNタイムアウト時間 + a で 130秒程度待機する)
TIMEOUT_SEC=130
WAIT_TIME=5
WAIT_COUNT=0
WAIT_MAX=$(( TIMEOUT_SEC / WAIT_TIME ))
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # プロセスID=$RUN_PROC_ID を停止します。"
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # $TIMEOUT_SEC 秒以内に停止しない場合は強制終了します。"
# 停止指示ファイル作成
touch $EVENT_FILE_PATH
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # プロセスを停止中です・・・"
# プロセス終了チェック
forceShutDownFlag=0
#ローカル用
ret=`ps x -p $RUN_PROC_ID | grep "$JAVA_HOME"`
status=$?
while [ $status = 0 ]
do
sleep $WAIT_TIME
WAIT_COUNT=$(( WAIT_COUNT + 1 ))
#ローカル用
ret=`ps x -p $RUN_PROC_ID | grep "$JAVA_HOME"`
status=$?
if [ $status = 0 ]; then
if [ $WAIT_COUNT -gt $WAIT_MAX ]; then
forceShutDownFlag=1
break
fi
fi
done
# 停止指示ファイル削除
rm -f $EVENT_FILE_PATH
if [ $forceShutDownFlag = 0 ]; then
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # プロセスが正常に停止しました。"
else
kill -9 $RUN_PROC_ID
echo `date +"%Y/%m/%d %H:%M:%S"` "WARN # プロセスを強制終了しました。"
fi
echo `date +"%Y/%m/%d %H:%M:%S"` "INFO # ${SHELLNAME}#処理を終了しました。"