如何在Windows中崩溃自动重启程序?

如何在Windows 2003服务器上崩溃时自动启动我的程序? 有时候我的程序崩溃了,我可以设置窗口或设置吗?

Solutions Collecting From Web of "如何在Windows中崩溃自动重启程序?"

通常的做法是运行所谓的监护程序。 这是一个单独的过程,通常是一个服务,监视主进程的状态。 当监护人发现主服务已经死亡时,它会重新产生它。

据我所知,没有内置的Windows功能为你做这个。

注意:运行自我循环的bat文件可能是有用的,但是除非你知道你在做什么,否则可能会造成各种破坏。 特别是如果你在启动时运行它们。 你被警告了。

无论如何。 我只记得我286天的事情,当时我用BAT文件玩了很多。 如果你写的文件

yourprogram.exe some other event 

BAT文件将运行您的程序,然后暂停并在后台等待,直到程序退出。 之后,它将运行“其他事件”。 如果你想同时运行多个东西,这曾经是一种讨厌的事情,但在这里它实际上是有用的。 使用它,可以使其运行一个循环,在程序退出时立即重新启动程序(并重新运行bat文件)。 把这个与https://superuser.com/questions/62525/run-a-completly-hidden-batch-file结合起来,你永远不会看到它发生。

最后的BAT文件(在这个例子中是“restart.bat”)看起来像这样:

 c:\[location]\yourprogram.exe wscript "C:\[location]\invisible.vbs" "C:\[location]\restart.bat" 

就是这样。 启动程序(通过任务启动时,甚至只是启动文件夹)与第2行,这应该解决您的问题:)

哦,如果你想停止循环,只需重新命名bat文件或在两行前面加“/”,保存并退出程序。

如果您正在运行的程序需要管理员权限,我找到的解决方案是使用psexec( http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx )以提升的权限运行程序和蝙蝠。 在这种情况下,英美烟草将如下所示:

 c:\[location]\psexec -hc:\[location]\yourprogram.exe c:\[location]\psexec -h wscript "C:\[location]\invisible.vbs" "C:\[location]\restart.bat" 

然后以管理员身份运行bat,或者使用提升的特权从任务计划程序运行第二行(不带psexec部分)。 注意:以普通用户的身份运行它,在UAC提示符上点击“否”,给我一个BSOD,可能是因为它循环“不能运行程序,因为缺乏特权”几十亿次或什么东西:)

不幸的是,Windows中没有任何设置可以在崩溃时自动重新启动常规程序。

你需要积极地与应用程序的GUI进行交互吗? 一些服务包装器 (设计用于运行任何应用程序作为Windows服务)将监视您的应用程序,并在失败时重新启动它,但请务必研究会话0隔离以确保它不会阻碍。

您可以使用一些特殊的应用程序,如BDV SystemEvents或任何其他。 它使您可以指定应用程序,如果关闭另一个应用程序将启动。 指定相同的应用程序作为一个条件和行动,你会得到预期的结果。

我正在寻找类似的东西。 有两个选项来处理这个问题 – 你可以自己写一个小脚本,或者使用已经存在的东西。

一些Google搜索后,我遇到了这个不错的名单 。 博客编译了大约8个工具来自动重启崩溃或关闭的应用程序。