如何在Windows启动时运行具有故障处理的应用程序

时间:2009-10-23 06:53:48

标签: windows windows-services scheduled-tasks

所有。我有一个有线的案子 我有两个控制台.net应用程序。 比方说app1和app2。

我想要在Windows服务器启动时运行这两个应用程序(没有登录,我的两个应用程序将自动运行)

但是有规则,app1必须在app2之前至少运行10分钟。 而且他们中的任何一个都会崩溃,我希望他们能够自动再次升级

有谁知道我该怎么办?

3 个答案:

答案 0 :(得分:1)

我唯一可以接受的方法是让第三个服务充当监视程序,并在其他服务启动时触发。

这必须由具有常规“心跳”的其他进程提供服务,以防止它关闭并重新启动它所监视的服务。

答案 1 :(得分:1)

启动app1设置计时器。经过10分钟后启动app2并进入状态app2_launched。然后使用类似pid文件或os共享对象的东西来“监视”彼此

答案 2 :(得分:1)

首先,如果你的应用必须在没有用户登录的情况下运行,那么它们必须是服务。

现在,在创建服务时,您可以决定如何响应崩溃。您可以将服务配置为在崩溃的情况下重新启动(请参阅服务属性对话框)。

如果App1崩溃,您是否必须停止App2,启动App1,然后10分钟后重启App2?或者在这种情况下,您可以立即重新启动App1吗?

根据您的描述,对开始排序的控制看起来很复杂,内置服务配置是不够的,所以您很可能需要将该逻辑保留在某处。

如果App1可以了解App2,那么可以在App1中拥有该逻辑。然后,App1将有2个职责(自行运行,并管理App2服务的状态)。

另一方面,您可以拥有第三项服务,该服务仅负责管理App1和App2服务的生命周期和运行状况。这是ChrisBD建议的看门狗。