システム導入-jarパッケージが更新されると自動的にプロジェクトを再起動します.
5075 ワード
1.linuxにinotifywaitをインストールしてファイル監視を実現する
(1)noitifyダウンロードアドレス:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
(2)サーバへのアップロード
(3)解凍インストール
解凍されたファイルに移動
configureの実行
make
インストールに成功すると、
2.shellスクリプトの作成
これは私のディレクトリです.pdはjavaプロジェクトのjarパッケージを入れます.pd_Web放コンパイル後のフロントエンドプロジェクトjsなどのコード、scriptはリスニングされたスクリプトファイル、springbootの起動スクリプトファイルです
pdディレクトリ
pd_Webディレクトリ
scriptディレクトリ
springboot.shの内容はjarパケットの状態を制御するために使用されます(javaコマンドを使用するとjdkを自分で事前にインストールする必要があります)
watch_file_change.shはpdディレクトリのjarパケットが変更するかどうかを傍受し、変更時にspringbootを自動的に呼び出す.shのrestartコマンド
はい.shファイルx実行権限の追加
watch_の実行file_change.shファイルを開いて傍受を変更する
プロセスが正常にオープンしたかどうかを確認
これで終わり、
jarパッケージのアイテムを単独で実行する場合はspringbootを実行できます.sh
./springboot.sh start
(1)noitifyダウンロードアドレス:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
(2)サーバへのアップロード
(3)解凍インストール
tar -zxvf inotify-tools-3.14.tar.gz
解凍されたファイルに移動
cd inotify-tools-3.14
configureの実行
./configure
make
make
make install
インストールに成功すると、
/usr/local/bin
の下にinotifywait
とinotifywatch
のコマンドがあります.2.shellスクリプトの作成
これは私のディレクトリです.pdはjavaプロジェクトのjarパッケージを入れます.pd_Web放コンパイル後のフロントエンドプロジェクトjsなどのコード、scriptはリスニングされたスクリプトファイル、springbootの起動スクリプトファイルです
pdディレクトリ
pd_Webディレクトリ
scriptディレクトリ
springboot.shの内容はjarパケットの状態を制御するために使用されます(javaコマンドを使用するとjdkを自分で事前にインストールする必要があります)
#! /bin/bash
# springboot jar , jar
CURRENT_PATH=/home/ftpuser/pd/
LOG=/home/ftpuser/script/springboot.log
JAR=$(find $CURRENT_PATH -maxdepth 1 -name "*.jar")
PID=$(ps -ef | grep $JAR | grep -v grep | awk '{ print $2 }')
case "$1" in
start)
if [ ! -z "$PID" ]; then
echo "$JAR , : $PID"
else
echo -n -e " $JAR ...
"
cd $CURRENT_PATH
nohup java -Dloader.path=$CURRENT_PATH,resources,lib -jar $JAR >$LOG 2>&1 &
if [ "$?"="0" ]; then
echo " , "
else
echo " "
fi
fi
;;
stop)
if [ -z "$PID" ]; then
echo "$JAR , "
else
echo " $JAR ..."
kill -9 $PID
if [ "$?"="0" ]; then
echo " "
else
echo " "
fi
fi
;;
restart)
${0} stop
${0} start
;;
kill)
echo " $JAR"
killall $JAR
if [ "$?"="0" ]; then
echo " "
else
echo " "
fi
;;
status)
if [ ! -z "$PID" ]; then
echo "$JAR "
else
echo "$JAR "
fi
;;
*)
echo "Usage: ./springboot.sh {start|stop|restart|status|kill}" >&2
exit 1
esac
watch_file_change.shはpdディレクトリのjarパケットが変更するかどうかを傍受し、変更時にspringbootを自動的に呼び出す.shのrestartコマンド
#!/bin/bash
src="/home/ftpuser/pd/"
log="/home/ftpuser/script/watch.log"
fileType="jar"
/usr/local/bin/inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e close_write $src | while read DATE TIME DIR FILE; do
FILECHANGE=${DIR}${FILE}
if [[ $FILECHANGE =~ $fileType ]]
then
echo “At ${TIME} on ${DATE}, file $FILECHANGE was change” >> $log
/home/ftpuser/script/springboot.sh restart >> $log
fi
done
はい.shファイルx実行権限の追加
chmod u+x springboot.sh
chmod u+x watch_file_change.sh
watch_の実行file_change.shファイルを開いて傍受を変更する
./watch_file_change.sh
プロセスが正常にオープンしたかどうかを確認
[root@instance-g23bz0zz script]# ps aux|grep *
これで終わり、
jarパッケージのアイテムを単独で実行する場合はspringbootを実行できます.sh
./springboot.sh start