2012-02-17 149 views
1

我很抱歉如果之前询问过这个问题,但我找不到与我的情况正确匹配。自动重启批处理文件

我有一些批处理文件,它们总是在运行,因为它们内部运行着java程序。然而,有时它们会崩溃,并且由于我没有监视它们,所以有一段时间会过去,直到我重新启动它们。

我想问,是否有一种方法来监视这些批处理文件,或者即使它们发生崩溃,我如何重新启动这些批处理文件。我在Windows XP上运行这些文件。

谢谢

回答

1

您可以从循环中的另一个批处理文件启动批处理文件。当它启动时,循环等待。一旦崩溃 - 循环开始。

+0

嗨,我也从其他地方读过这篇文章,但我对批处理写作并不熟悉。你能举出这个批处理代码的例子吗?我的意思是循环例子。如果我的.bat的名字是emrah.bat。 – emrahsamdan 2012-02-17 12:21:53

+0

只是谷歌出来。有关于SO的话题,例如[this one](http://stackoverflow.com/questions/1788473/while-loop-in-batch) – weekens 2012-02-18 08:39:42

0

用通过cmd.exe调用java的goto循环替换对java的每个调用。只有当java程序退出并出现错误时才有条件地循环返回。

. 
. 
:javaLoop 
cmd /c java yourJavaProg || goto :javaLoop 
. 
. 

你可能想通过增加一个计数器来限制它重新启动的次数,以防止在完全失效的情况下无限循环迅速。另一种可能性是记录时间,并且只有在自上次重新启动后经过最短时间时才重新启动。或者可能是两者的结合。

编辑 - 第二个想法,你可能不需要CMD/C。它可以正常工作,只需直接调用java并有条件地循环出错。