2016-07-28 49 views
-2

我希望能夠在每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

回答

0

那麼,我只是使用Runtime.getRuntime().exit(0),它成功地停止了我的應用程序。我沒有得到禁令或任何東西。然後我重新啓動我的應用程序以查看是否有任何問題。沒有問題。那麼這個命令就行了。謝謝

編輯:這工作,但openshift自動重新啓動應用程序。所以這不是答案。如果我找到答案,我會在這裏回答。謝謝

+0

您是否意識到openshift是一個應用程序服務器而不是應用程序?你正在殺死整個應用程序服務器,只是爲了阻止應用程序中的進程? – tak3shi

+0

是的,我知道。他們有安全檢查。沒有人可以在他們的代碼中使用像System.exit()這樣的簡單命令,並停止整個服務器。他們不允許這樣做。所以是的,我沒有殺死整個服務器。我只想在一段時間後殺死我自己的應用程序。因此,這個問題 –

相關問題