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

时间:2014-05-08 18:13:58

标签: linux grails groovy

我尝试使用下面的代码重新启动应用程序(它支持重启按钮)。但重启并没有发生。

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

一些相关细节:

  • here
  • 获得基本想法
  • 引号中的命令起作用 命令行没有错误。请注意,应用程序是使用a启动的 服务包装器
  • 记录确认$ appname正确解析为 服务
  • 睡觉的原因让我们不要尝试 在应用程序运行时重新启动
  • 如果我删除System.exit语句,则重启仍然不会发生
  • 'waitForOrKill'是选项的替代品 这需要应用程序等待进程完成, 这个过程重启应用程序后没有意义。它告诉应用程序重启过程在2秒后失败
  • sudo config:NOPASSWD是 为chadmin帐户添加,该帐户是运行该应用的帐户。 它仅用于服务命令。
  • 其他Linux日志记录可能有所帮助......不是我熟悉的领域。 syslog
  • 中没有出现任何问题

1 个答案:

答案 0 :(得分:0)

想出来,关键是要确保waitForOrKill设置足够大,以便完成该过程。事后看来显而易见。