Service 如何正确检查启动缓慢的java tomcat应用程序是否正在运行,以便重新启动它?

Service 如何正确检查启动缓慢的java tomcat应用程序是否正在运行,以便重新启动它?,service,daemon,Service,Daemon,我想为几个tomcat应用程序实现一个自动服务重启,这些应用程序启动确实需要很多时间,甚至超过10分钟 测试主要检查应用程序是否在HTTP上响应有效的响应 尽管如此,这并不是问题所在,问题在于如何防止正常运行时间检查在服务处于维护状态时失败,无论是否有计划 如果使用“service appname stop”手动停止此服务,我不希望启动此服务 我考虑在守护进程的停止或重启操作上创建.maintenance文件,并在触发自动重启之前检查它们 到目前为止,我唯一无法正确解决的问题是,如何检测应用程序

我想为几个tomcat应用程序实现一个自动服务重启,这些应用程序启动确实需要很多时间,甚至超过10分钟

测试主要检查应用程序是否在HTTP上响应有效的响应

尽管如此,这并不是问题所在,问题在于如何防止正常运行时间检查在服务处于维护状态时失败,无论是否有计划

如果使用“service appname stop”手动停止此服务,我不希望启动此服务

我考虑在守护进程的停止或重启操作上创建
.maintenance
文件,并在触发自动重启之前检查它们

到目前为止,我唯一无法正确解决的问题是,如何检测应用程序是否已完成启动并删除
.maintenance
文件,以便自动重启正常工作


注意,init.d脚本不应该等待,因此守护进程应该启动解决此问题的后台命令。

是由服务器上运行的servlet编写的.maintenance吗?长时间运行的启动是否发生在init()中servlet的方法?忽略此应用程序运行缓慢的原因。您可以假设您对正在运行的应用程序没有任何控制权。在我的例子中,我正在尝试改善Jira或Confluence的正常运行时间,它有时会崩溃,但崩溃的方式很糟糕,只有通过检查它们是否仍然响应才能检测到onding on HTTP requests.OK,因此您对它拥有额外控制权的不是您自己的应用程序。您可以尝试类似JBoss部署的模型…您创建控制文件(如.maintenance)来存储您认为它应该处于的状态:x.starting、x.running、x.stopped。因此,根据状态的不同,您有不同的检查(在已停止”)。启动时,您希望它在某个时间限制内运行,或者重新启动。运行时,您希望ping类型的服务能够响应。这是一个麻烦的问题,可能会出现长期启动问题,但您对其他产品有限制。