如何在Openshift中停止应用程序

如何在Openshift中停止应用程序

问题描述:

我希望能够在每3天内停止我的应用程序。我只想安排一种方法,在没有任何外部干预的情况下自动停止应用程序(如坐在我的桌面等)。如何在Openshift中停止应用程序

到目前为止,我有这几点:

Runtime.getRuntime().exec("rhc stop-app --app ApplicationName"); //This doesn't work. I have tried it 

或者

System.exit(0) // I am told to not run this command on openshift server 

或者

Runtime.getRuntime().exit(0) //I am afraid to run this command 

或者

Runtime.getRuntime().halt(0) //I am afraid to run this command as well  

我害怕使用这些命令中的一些命令,因为我告诉他们不要在openshift服务器上运行它们,因为它们实际上可能会停止整个虚拟机。这将停止在该虚拟机上托管的所有应用程序。这会让我被禁止。我将被禁止。

编辑:这个问题不是如何停止一般的应用程序。这个问题是关于如何停止在OpenShift服务器上托管的Spring MVC wep应用程序。没有那些答案不适用于这个环节。

+0

您只需根据逻辑条件停止应用程序即可。 'while(validConditionToContinue()){yourProcessingHere(); }'。当条件不再适用时,程序将自然退出。这取决于您的应用程序触发它如何退出该循环。 – ManoDestra

+0

@ManoDestra我想要一个特定的命令来停止应用程序。该特定命令是Runtime.getRuntime()。exit(0)。谢谢 –

+0

不好的做法。除非发生需要立即退出应用程序的绝对灾难性事件,否则您不应该要求该命令。它不应该用于从应用程序正常退出。这可以用普通的逻辑来完成。除非你使用关闭挂钩:http://stackoverflow.com/questions/3715967/when-should-we-call-system-exit-in-java。您目前的上述要求不符合该情况。您应该使用逻辑处理它,并且比使用运行时强制退出应用程序更优雅地退出应用程序。 – ManoDestra

那么,我只是使用Runtime.getRuntime().exit(0),它成功地停止了我的应用程序。我没有得到禁令或任何东西。然后我重新启动我的应用程序以查看是否有任何问题。没有问题。那么这个命令就行了。谢谢

编辑:这工作,但openshift自动重新启动应用程序。所以这不是答案。如果我找到答案,我会在这里回答。谢谢

+0

您是否意识到openshift是一个应用程序服务器而不是应用程序?你正在杀死整个应用程序服务器,只是为了阻止应用程序中的进程? – tak3shi

+0

是的,我知道。他们有安全检查。没有人可以在他们的代码中使用像System.exit()这样的简单命令,并停止整个服务器。他们不允许这样做。所以是的,我没有杀死整个服务器。我只想在一段时间后杀死我自己的应用程序。因此,这个问题 –