有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个spring boot rest服务器,它是使用init启动的。由systemd调用的脚本。一旦服务器启动,脚本就认为它成功了。这会导致一些问题,例如,如果服务器因端口已在使用等原因发生故障,它仍将被视为已成功。我已经想出了一个解决方案,将日志文件在循环中的最后几行变灰,以确保没有出现错误,并在出现错误时返回错误,但我觉得这可能会引入竞争条件,并可能导致意外行为。有没有更好的方法可以使用


共 (2) 个答案

  1. # 1 楼答案

    你可以在你的脚本中添加如下内容,复制(>;)脚本的所有输出都会触发到一个文件中,grep将从中查找错误

    “触发脚本的命令”>;倾倒txt findstr/I“错误”转储。txt

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

  2. # 2 楼答案

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

     $ systemctl status your-app
    

    或者你可以使用^{

    $ systemctl is-active your-app
    

    如果应用程序处于活动状态,退出代码将为0,如果应用程序未处于活动状态,退出代码将不是0