假設我在遠程服務器上的Tomcat上放置了一個Java應用程序,例如Amazon AWS。如果應用程序以不可恢復的方式失敗,你推薦什麼來重新啓動tomcat AUTOMATICALLY? 也許有辦法從應用程序本身做到這一點,所以如果我看到異常非常討厭,我可以重新啓動它?如果應用程序崩潰,如何在遠程服務器上重新啓動Tomcat?
3
A
回答
4
一種可能性是安裝監視器(例如,在端口上,一些自定義檢查等)應用程序,並且如果必要的話重新啓動整個服務器。這甚至可以是一個bash腳本,它在受控的子shell上執行catalina.sh run
。
體面的監測系統也允許這樣做。例如,Zabbix允許自定義監視檢查和操作,因此如果服務無法訪問,它可以主動重新啓動它。
另一種解決方案是使用Tomcat manager來停止/啓動現有的應用程序。您可以通過調用相關管理器URL的Apache Ant腳本執行此操作。但是,如果應用程序「硬」死並將整個服務器關閉,則此解決方案不適用。
1
我會建議看看monit實用程序。隨着monit的,你可以很容易地監控服務,資源使用,然後檢查網址 - 以確保服務響應的預期,並開始重新啓動時,一些錯誤http://mmonit.com/monit/documentation/monit.html#connection_testing_using_the_url_notation
4
沒有這裏的任何程序有趣的解決方案:http://aujava.wordpress.com/2006/08/16/watchdog-for-tomcat/
你只需要將isalive.html(帶有單個文本「YES」)添加到您的應用程序並使用以下腳本:
#!/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. 如何從.NET重新啓動遠程服務器上的COM +應用程序?
- 2. 啓動後啓動服務時,應用程序崩潰
- 3. 以編程方式重新啓動所有崩潰服務的服務程序
- 4. 應用程序在重新啓動活動時崩潰
- 5. 應用程序在手動kill後重新啓動時崩潰
- 6. Tomcat服務器遠程重新部署
- 7. 重新啓動代理程序崩潰
- 8. 如何在Android中崩潰時以編程方式重新啓動/重新啓動應用程序?
- 9. 以編程方式重新啓動應用程序崩潰
- 10. 在Tomcat服務器上啓動JHipster生成的應用程序
- 11. 在崩潰時重新啓動應用程序
- 12. 應用程序在手機的重新啓動時崩潰
- 13. 在Tomcat服務器上的Web應用程序中使用SVNKit時,JRE崩潰
- 14. 如果Windows移動程序崩潰,如何重置該程序?
- 15. 如何啓動服務器上的遠程SVN更新
- 16. Android:如何防止服務在崩潰後重新啓動?
- 17. 如何創建在崩潰時重新啓動的服務
- 18. 如何找到應用程序崩潰?重新啓動?在iOS中
- 19. 如何在Windows上啓動服務器應用程序
- 20. 如何重新啓動Azure應用程序服務實例
- 21. Android:應用程序崩潰應用程序重新啓動Facebook登錄
- 22. 檢測並重新啓動崩潰的.NET應用程序
- 23. 當它崩潰時重新啓動Silverlight應用程序?
- 24. Android應用程序崩潰時重新啓動
- 25. 快速退出時應用程序崩潰+重新啓動
- 26. Android應用程序崩潰後重新啓動
- 27. 應用程序重新啓動太快時崩潰
- 28. Web應用程序重新啓動jni崩潰?
- 29. 崩潰後重新啓動ASP.NET核心應用程序
- 30. 重新啓動應用程序而無需重新啓動服務器?
這不是一個好的做法....如果您打算使用HTML方法,最少使用crontab而不是睡眠。 – Panthro 2014-04-02 12:40:49