Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 以编程方式重新启动Grails应用程序_Linux_Grails_Groovy - Fatal编程技术网

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

Linux 以编程方式重新启动Grails应用程序,linux,grails,groovy,Linux,Grails,Groovy,我正在尝试使用下面的代码重新启动应用程序(它支持重新启动按钮)。但是,重新启动不会发生 def process = "sleep 5s && sudo service $appname restart".execute() process.waitForOrKill(2000) System.exit(0) 一些相关细节: 从中得到了基本的想法 引号中的命令从 命令行没有错误。请注意,应用程序是使用 服务包装器 日志记录确认$appname正确解析为 服务 睡觉的原因是为了让

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

def process = "sleep 5s && sudo service $appname restart".execute()
process.waitForOrKill(2000)
System.exit(0)
一些相关细节:

  • 从中得到了基本的想法
  • 引号中的命令从 命令行没有错误。请注意,应用程序是使用 服务包装器
  • 日志记录确认$appname正确解析为 服务
  • 睡觉的原因是为了让我们不去尝试 在应用程序运行时重新启动
  • 如果我删除System.exit语句,重启仍然不会发生
  • “waitForOrKill”是选项的另一种选择 这需要应用程序等待流程完成, 这是没有意义的,因为进程会重新启动应用程序。它告诉应用程序重启过程在2秒后失败
  • sudo配置:NOPASSWD为 为chadmin帐户添加,该帐户是运行应用程序的帐户。 它只是为服务命令添加的
  • 额外的Linux日志记录可能会有所帮助……这不是我熟悉的领域。系统日志中没有显示任何问题

    • 解决了这个问题,关键是要确保waitForOrKill设置足够大,以便完成该过程。事后看来似乎很明显。

      您是要对运行应用程序启动的流程执行此操作,还是对部署的应用程序执行此操作?对部署的应用程序执行此操作。我们正在使用一个带有服务包装器的胖jar(由独立的apprunner创建)。顺便说一句,我发现一个被杀死的应用程序会重新启动,可能是因为服务包装器。