linux - 以编程方式重新启动 Grails 应用程序

原文 标签 linux grails groovy

我正在尝试使用下面的代码重新启动应用程序(它支持重新启动按钮)。但是不会发生重新启动。

def process = "sleep 5s && sudo service $appname restart".execute()
process.waitForOrKill(2000)
System.exit(0)

一些相关细节:
  • here 获得基本思想
  • 引号中的命令适用于
    命令行没有错误。请注意,该应用程序是使用
    服务包装
  • 日志记录确认 $appname 正确解析为
    服务
  • sleep 的原因是为了让我们不要尝试
    应用运行时重启
  • 如果我放弃 System.exit 语句,重新启动仍然不会发生
  • ‘waitForOrKill’ 是选项的替代方案
    这将要求应用程序等待该过程完成,
    这是没有意义的,因为该过程会重新启动应用程序。它告诉应用程序重启过程在 2 秒后失败
  • sudo config: NOPASSWD 是
    为 chadmin 帐户添加,该帐户是运行应用程序的帐户。
    它只是为服务命令添加的。
  • 额外的 Linux 日志记录可能会有所帮助……这不是我熟悉的领域。系统日志中未显示任何问题
  • 最佳答案

    弄清楚了,关键是确保 waitForOrKill 设置足够大以完成该过程。事后看来很明显。

    关于linux - 以编程方式重新启动 Grails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23549497/

    相关文章:

    list - Groovy/Grails : How to sort the list of objects by id

    java - 什么是编译组,名称等?

    linux - 如何在启动时捕获整个内核 panic

    java - Ubuntu Java 错误日志

    java - 使用Angularjs从Grails后端获取JSON数据

    grails - Grails在预定义表中引入了额外的列

    grails - Heroku,Grails:如果使用多个Web dynos,则会丢失资源

    c++ - 如何将程序输出重定向为输入

    linux - 2个变量的乘法

    groovy - 如何使用jmeter对redis进行基准测试?