Zah*_*hid 10 windows windows-server-2003
如果在Windows 2003服务器上崩溃,如何自动启动程序?有时我的程序崩溃了,有没有办法在Windows或设置我可以设置?
Dav*_*nan 11
通常的方法是运行所谓的监护过程.这是一个单独的进程,通常是一个服务,它监视主进程的状态.当监护人发现主要服务已经死亡时,它会重新产生它.
据我所知,没有内置Windows功能为您执行此操作.
Iva*_*tin 11
有多种方法可以在 Windows 上创建进程主管/监护人进程。首先,是利用 windows 命令行功能。创建一个bat文件:
@echo off
:start
start /w "your app to watch.exe"
goto start
Run Code Online (Sandbox Code Playgroud)
start /w将等待进程退出。当进程崩溃并退出时,bat 脚本将重新启动它。
另一种选择是使用免费supervisor工具https://github.com/chebum/Supervisor。它允许重新启动崩溃的应用程序,此外它还允许一次监视两个或多个应用程序,并且当主管的窗口关闭时它会自动关闭这些应用程序。
小智 6
注意:运行自循环bat文件可能很有用,但除非你知道你在做什么,否则它们会造成各种各样的破坏.特别是如果你在启动时运行它们.你被警告了.
无论如何.我记得286天的事情,当时我和BAT文件玩了很多次.如果你写文件
yourprogram.exe
some other event
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
就是这样.用第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"
Run Code Online (Sandbox Code Playgroud)
然后以管理员身份运行bat,或者使用提升的权限从任务调度程序运行第二行(没有psexec部分).请注意:以普通用户身份运行并在UAC提示符上单击"否"给了我一个BSOD,可能是因为它因为缺少权限而无法运行程序"几十亿次或者某事:)
小智 5
您可以使用注册应用程序重新启动。
“如果您注册重新启动并且应用程序遇到未处理的异常或没有响应,则为用户提供重新启动应用程序的机会;未经用户同意,应用程序不会自动重新启动。”
对于无需用户干预的自动重启,还有RestartOnCrash。适用于所有 Windows 版本。
| 归档时间: |
|
| 查看次数: |
38728 次 |
| 最近记录: |