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 配置:NOPASSWD 是 为 chadmin 帐户添加,该帐户是运行该应用程序的帐户。 它只是为服务命令添加的。
  • 额外的 Linux 日志记录可能会有所帮助...这不是我熟悉的领域。系统日志中没有出现问题

最佳答案

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

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

相关文章:

python - 删除连续的 2 行

grails - grails Acegi:如何检查过期的密码

grails - 在 Spring 通过ajax成功登录后重定向到页面

Groovy DSL 脚本

parsing - Groovy 解析器 : add node with special namespace

linux - 为什么 bash 不会因短路命令序列中的错误而停止?

c - 是否需要写一个 "portable"if (c == '\n' )来处理跨平台文件?

linux - udp 从驱动程序发送

Grails:使用 java 命令启动 grails war 时如何定义配置文件?

jenkins - 使用包含 Jenkins 表达式和环境变量