检查Java应用程序是否已成功启动init.d脚本

时间:2016-02-24 11:24:48

标签: java spring-boot systemd init.d

我有一个spring-boot rest服务器,它是使用systemd调用的init.d脚本启动的。服务器启动后,脚本会认为它是成功的。这导致了诸如如果服务器由于诸如已经在使用的端口之类的原因而失败的问题,则仍将被认为是成功的。我已经提出了一个解决方案,在循环中最后几行压缩日志文件以确保没有出错并返回错误(如果有)但我觉得这有可能引入竞争条件并可能导致意外行为。有没有更好的方法可以使用?

2 个答案:

答案 0 :(得分:0)

你可以在ur脚本中添加类似下面的内容,将脚本触发器的所有输出复制(>)到一个文件,从哪个grep for ERROR

“触发脚本的命令”> dump.txt findstr / I“ERROR”dump.txt

其中“findstr”找到字符串,“I”代表不区分大小写并自定义你的错误字符串你需要搜索

答案 1 :(得分:0)

您可以向systemd询问您的申请状态:

 $ systemctl status your-app

或者您可以使用is-active

$ systemctl is-active your-app

如果您的应用程序处于活动状态,退出代码将为0;如果应用程序处于非活动状态,则退出代码将为0以外。