所有。我有一个有线的案子 我有两个控制台.net应用程序。 比方说app1和app2。
我想要在Windows服务器启动时运行这两个应用程序(没有登录,我的两个应用程序将自动运行)
但是有规则,app1必须在app2之前至少运行10分钟。 而且他们中的任何一个都会崩溃,我希望他们能够自动再次升级
有谁知道我该怎么办?
答案 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建议的看门狗。