无头时无法重启Windows进程

时间:2014-10-11 02:01:18

标签: .net windows process

所有

我有一台运行Win8.1的Windows无头机器(没有连接显示器),它运行一个24x7全天候重启的.NET应用程序。该应用程序运行node.js进程,该进程存在导致节点突然退出的问题。

当我尝试解决节点问题(这不是本文的主题)时,我向应用程序添加了一些代码,以便在中止时重新启动节点。应该非常简单,并且当PC重新启动但节点最终中止时节点进程启动,在控制台连接到计算机之前,通过插入监视器或通过远程控制台,不会引发进程“已退出”事件像VNC那样重启代码运行。如果连接了控制台,它将始终重新启动。

如何让流程开始减少依赖于连接控制台?我尝试了一些流程选项,但它没有什么区别。

处理开始代码(vb.net)

    Private Function LoadNodePlugins() As Boolean
        NodeProc.StartInfo.FileName = "node.exe"
        NodeProc.StartInfo.Arguments = "plugmgr.js"
        NodeProc.StartInfo.WorkingDirectory = "..\..\..\..\pluginMgr\pluginMgr"
        NodeProc.EnableRaisingEvents = True
        NodeProc.Start()
        Return True
    End Function

处理退出事件处理程序

    Private Sub NodeProcess_HasExited(ByVal sender As Object, ByVal e As System.EventArgs) Handles NodeProc.Exited
        If NodeProc.ExitCode > 0 Then                                    ' Don't capture normal termination
            WriteConsole(True, "WARNING: Node process has aborted (error code " + NodeProc.ExitCode.ToString() + "). Restarting")
            System.Threading.Thread.Sleep(5000)
            LoadNodePlugins()
        End If
    End Sub

0 个答案:

没有答案