【问题标题】:auto restart batch files自动重启批处理文件
【发布时间】:2012-03-08 17:06:26
【问题描述】:

如果之前有人问过这个问题,但我找不到与我的情况正确匹配的问题,我深表歉意。

我有一些批处理文件,它们总是在运行,因为其中运行了 java 程序。但是,有时它们会崩溃,并且由于我没有监视它们,因此需要一段时间才能重新启动它们。

我想问有没有办法监控这些批处理文件,或者即使它们崩溃,我如何重新启动这些批处理文件。我在 Windows XP 上运行这些文件。

谢谢

【问题讨论】:

    标签: java batch-file windows-xp


    【解决方案1】:

    【讨论】:

    • 这对我来说似乎不错,但我有 20 个 barch 文件要运行。这个程序似乎只为一个进程配置。你知道调整这个程序以同时监控多个进程的方法吗?
    【解决方案2】:

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

    【讨论】:

    • 嗨,我也从其他地方读过这个,但我不熟悉批量写作。你能举个这个批处理代码的例子吗?我的意思是循环示例。如果我的 .bat 的名称是 emrah.bat。
    • 用谷歌搜索一下。 SO上有一些主题,例如this one
    【解决方案3】:

    将每次调用 java 替换为通过 cmd.exe 调用 java 的 goto 循环。仅当 java 程序因错误退出时才会有条件地循环返回。

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

    您可能希望通过添加一个计数器来限制它重新启动的次数,以防止在完全失败的情况下出现无限快速循环。另一种可能性是记录时间,并且仅在自上次重新启动后经过最少时间时才重新启动。或者两者兼而有之。

    编辑 - 再三考虑,您可能不需要 CMD /C。直接调用 java 并在出错时有条件地循环,它可能会正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 2018-09-22
      • 2016-05-24
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多