0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

脚本例子2 开始 终了

Last updated at Posted at 2018-12-16

#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}#処理を終了しました。"

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?