リモートサーバーのTomcatにJavaアプリケーションをインストールするとします(Amazon AWSなど)。アプリケーションが回復不能な方法で失敗した場合、自動的にTomcatを再起動することをお勧めしますか? 多分、アプリケーション自体からこれを行う方法があるので、例外が非常に厄介であることがわかったら、すべてを再起動できますか?アプリケーションがクラッシュした場合、リモートサーバー上でTomcatを再起動する方法はありますか?
3
A
答えて
4
1つの可能性は、アプリケーションを監視(ポート、カスタムチェックなど)し、必要に応じてサーバー全体を再起動するウォッチドッグをインストールすることです。これは制御されたサブシェル上でcatalina.sh run
を実行するbashスクリプトでもあります。
また、適切なモニタリングシステムでこれが可能です。たとえば、Zabbixでは、カスタム監視のチェックとアクションが許可されているため、サービスに到達できない場合は、事前にサービスを再起動できます。
もう1つの解決策は、既存のアプリケーションを停止/開始するためにTomcat managerを使用することです。関連するマネージャーURLを呼び出すApache Antスクリプトを使用してこれを行うことができます。ただし、アプリケーションが「ハード」になってサーバー全体がダウンすると、この解決策は適用されません。
1
私はmonitユーティリティを見ることをお勧めします。あなたは簡単にサービス、リソースの使用状況を監視することができMONITでは、URLをチェック - サービスが期待通りに応答することを確認するために、再起動を開始したときに何かが間違っhttp://mmonit.com/monit/documentation/monit.html#connection_testing_using_the_url_notation
ここで任意のプログラムなし
4
興味深いソリューション:http://aujava.wordpress.com/2006/08/16/watchdog-for-tomcat/
は、あなただけに必要
#!/bin/sh
HOST=127.0.0.1
PORT=8080
#infinite loop
while [ 1 ]
do
#try to access tomcat's page
RES=`wget -O - -o /dev/null --proxy=off http://${HOST}:${PORT}/isalive.html | awk '{ print $1 }'`
echo got ${RES}
#decide on reply
if [ "$RES" = "YES" ]
then
echo tomcat is responding on $HOST:$PORT
else
echo tomcat seems to be dead.
echo Killing...
for thepin in `ps -Af | grep -v grep | grep tomcat | grep catalina | awk '{ print $2 }'`
do
kill -9 ${thepin}
done
echo Starting...
sudo -u tomcat /usr/local/tomcat/bin/startup.sh
fi
sleep 60
done
関連する問題
- 1. Windowsでクラッシュした場合にプログラムを自動的に再起動する方法はありますか?
- 2. Javascriptアプリケーションがクラッシュした場合、自動的にJavascriptアプリケーションを再起動しますか?
- 3. アプリケーションがクラッシュした場合にサブプロセスがスタックしないようにする方法はありますか?
- 4. (YARNクライアントモードで)クラッシュした後にSparkエグゼキュータを再起動する方法はありますか?
- 5. node.jsコードでクラッシュした場合の再起動bitcoindデーモン
- 6. ANRエラーのためにアプリケーションが再起動するため、Androidが停止したらサービスを再起動する方法はありますか?
- 7. クラッシュ後にAndroidを再起動する動作の動作を変更する方法はありますか
- 8. クラッシュ時に自動的にアプリケーションを再起動しますか?
- 9. が失敗またはクラッシュした場合、linuxプロセスを自動的に再起動します。
- 10. JenkinsがTomcatを再起動します
- 11. 名前が空の場合、ドッカーコンテナの再起動ポリシーを決定する方法はありますか?
- 12. リモートサーバー上のWebサービスを実際にC言語で再起動する方法#
- 13. 開かれたアプリケーションがクラッシュした場合、開かれたDDEチャネルには何が起こりますか?
- 14. Androidスタジオが起動時にクラッシュする場合がある
- 15. Bluetooth Androidアプリが起動時にクラッシュする場合がある
- 16. クラッシュした場合の再起動jar用のLinuxスクリプト
- 17. アプリケーションを再起動しても値を格納する方法は? ApplescriptObjCでアプリケーションを作成する場合
- 18. app.configを変更した場合は、Windowsサービスを再起動する必要がありますか?
- 19. サーバーを再起動した場合、クライアントソケットをサーバーに再接続する方法
- 20. システムがクラッシュまたは再起動したときに通知する予定/意図はありますか?
- 21. Apache Tomcat 6.0でのアプリケーションの再起動
- 22. Tomcat 9で再起動せずにjarをデプロイする方法はありますか?
- 23. サーバを再起動した場合、EC2でアプリを手動で再起動する必要はありますか?
- 24. プロセスがクラッシュした場合、akka.netはリモートノードをどのように再起動しますか?
- 25. EclipseでTomcatを起動するとorg.apache.struts2.tiles.StrutsTilesListenerが見つからない場合があります
- 26. .NETからリモートサーバー上のCOM +アプリケーションを再起動するにはどうすればよいですか?
- 27. Visual Studio 2008がクラッシュし、デバッガを起動するときに再起動する必要があります
- 28. Androidアプリケーションがクラッシュしたが、再起動しません - 問題のアプリケーション
- 29. jenkinsに展開後にTomcatを再起動するように指示する方法はありますか?
- 30. サービスを再ロード/再起動する方法はありますか?
これはHTMLのアプローチを使用することを計画している場合は、次のようにしてください:atalive.html(単一のテキスト "YES")をアプリケーションに追加してください。少なくともsleepの代わりにcrontabを使用してください。 – Panthro