Al desarrollar un robot que rastrea un sitio web y extra la información para luego ingresarla en una base de datos, me tope con la necesidad de tener un monitor que me permitiera verificar que el servicio esté funcionando o trabajando.
Para verificarlo uso la siguiente función:

Function verificarservicio(ByVal servicionombre As String) As Boolean

Dim miSC As ServiceProcess.ServiceController
miSC = New ServiceProcess.ServiceController(servicionombre)
If miSC.Status = ServiceProcess.ServiceControllerStatus.Stopped Then
‘ no trabaja
Return False
ElseIf miSC.Status = ServiceProcess.ServiceControllerStatus.Running Then
‘ funcionando correctamente
Return True
End If
End Function