如何重新启动程序自动如果它崩溃在Windows中?[已关闭]

von4xj4u  于 2023-10-22  发布在  Windows
关注(0)|答案(7)|浏览(524)

已关闭此问题为not about programming or software development。它目前不接受回答。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
15天前关闭。
社区在15天前审查了是否重新打开这个问题,并将其关闭:
原始关闭原因未解决
Improve this question
如果我的程序在windows 2003 server上崩溃,我如何自动启动它?有时我的程序只是崩溃,有没有办法在窗口或设置,我可以设置?

x759pob2

x759pob21#

有几种方法可以在Windows上创建进程管理程序/监护人进程。首先,是利用windows命令行功能。创建一个bat文件:

@echo off
:start
start /w "your app to watch.exe"
goto start

start /w将等待进程退出。当进程崩溃并退出时,bat脚本将重新启动它。
另一种选择是使用免费的supervisor工具https://github.com/chebum/Supervisor。它允许重新启动崩溃的应用程序,再加上它允许一次监控两个或多个应用程序,当主管的窗口关闭时,它会自动关闭这些应用程序。

ux6nzvsh

ux6nzvsh2#

通常的方法是运行所谓的“守护者”进程。这是一个单独的进程,通常是一个服务,用于监视主进程的状态。当守护者检测到主服务已经死亡时,它会重新生成它。
据我所知,Windows中没有内置的功能可以为您做到这一点。

34gzjxbg

34gzjxbg3#

注意:运行自循环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)以提升的权限运行程序和bat。在这种情况下,BAT看起来像:

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

然后以管理员身份运行bat,或者以提升的权限从task scheduler运行第二行(不带psexec部分)。小心:以普通用户的身份运行它,然后在UAC提示符上点击“no”,这让我很郁闷,可能是因为它循环了几十亿次“由于缺乏权限而无法运行程序”之类的话:)

v09wglhw

v09wglhw4#

可以使用RegisterApplicationRestart.
“如果您注册重新启动,而应用程序遇到未处理的异常或没有响应,则用户有机会重新启动应用程序;未经用户同意,应用程序不会自动重新启动。”
对于无需用户干预的自动重启,还有RestartOnCrash。适用于所有Windows版本。

r7knjye2

r7knjye25#

我在找类似的东西。有两种方法来处理这个问题-你可以自己编写一个小脚本,或者使用已经存在的东西。
经过一些谷歌搜索,我遇到了这个不错的list。博主已经编译了大约8个工具来自动重启崩溃或关闭的应用程序。

j0pj023g

j0pj023g6#

不幸的是,Windows中没有设置在崩溃时自动重新启动常规程序。
您是否需要主动与应用程序的GUI交互?一些Service Wrappers(设计用于将任何应用程序作为Windows服务运行)将监视您的应用程序并在失败时重新启动它,但请确保调查会话0隔离,以确保它不会碍事。

bd1hkmkf

bd1hkmkf7#

您可以使用一些特殊的应用程序,如BDV SystemEvents或任何其他。它允许您指定应用程序将启动,如果一些其他应用程序被关闭。将同一应用程序指定为条件和操作,您将获得预期的结果。

相关问题