"Servicio de arranque neto" y "sc start". ¿Cuál es la diferencia?


70

Los servicios se pueden detener e iniciar usando dos comandos en el símbolo del sistema Shell.

  1. servicio de inicio neto "algún servicio"
  2. sc comienza "algún servicio"

¿Cuál es la diferencia entre estos comandos?

Respuestas:


81

En Windows NT, ambos comandos acceden al mismo Service Manager. La diferencia está principalmente en la parte visible para el usuario:

  • net es más antiguo, desde los días de MS-DOS y OS / 2, de hecho.

    scsolo apareció con Windows NT (no estoy seguro de qué versión) .

  • net solo puede iniciar, detener y pausar servicios.

    sc tiene controles más avanzados, puede consultar el estado, crear y eliminar servicios, cambiar su configuración y seguridad: sc config beep start= demand

  • net solo funciona localmente.

    sc se puede usar en la red: sc \\snow start rpcapd

  • net acepta nombres para mostrar: net start "Windows Firewall"

    sc siempre requiere un nombre de servicio: sc start SharedAccess


82

La respuesta de Grawity es ciertamente útil, pero encontré una diferencia fundamental entre estos comandos detallados en http://cbfive.com/command-line-service-management-net-v-sc/ . En particular, esta página señala que estos dos comandos difieren en su sincronización : "net" es síncrono y "sc" es asíncrono.

SC envía el control al servicio y luego vuelve al símbolo del sistema. Esto normalmente hace que SC START devuelva el servicio en un estado de START_PENDING. NET START esperará a que el servicio comience a llegar a un estado completamente iniciado antes de que regrese el control en el símbolo del sistema.

...

[Como] SC START, SC STOP no espera a que el servicio se detenga y, a menudo, regresará STOP_PENDING para muchas operaciones de parada de servicio. NET STOP, por otro lado, esperará a que el servicio se detenga antes de que regrese al símbolo del sistema.

...

NET y SC tienen ideas diferentes de lo que consideran condiciones de éxito. La pregunta que SC hace para determinar si fue exitosa es: “¿Envié exitosamente un control de detención al servicio?” Si lo hizo, independientemente de si el servicio se detuvo, entonces satisfizo la condición exitosa. NET hace la pregunta: "¿El servicio que intenté detener, devolvió que se detuvo correctamente?" Si lo hizo, entonces satisfizo la condición. Si no fue así, sin importar la razón, NET falla la condición exitosa


1
Un detalle interesante, este. Podría ser útil saber para los casos de secuencias de comandos (% ERRORLEVEL% variable). Gracias.
Sopalajo de Arrierez

1
esta respuesta es muy útil para mí, ya que estoy experimentando errores intermitentes de secuencias de comandos al intentar limpiar el directorio del servicio después de detenerlo, ya que no está completamente detenido.
johntrepreneur

Quiero usar "sc config", ¿eso también es asíncrono? ¿hay alguna manera de que un archivo por lotes espere hasta que la tarea se complete realmente?
Peter

3

Por lo que vale, he encontrado que sc start / stop es más confiable que net start / stop. A veces, el inicio / detención neto provocó que el servicio se atascara en un estado de inicio / detención, mientras que esto nunca se me ocurrió con sc start / stop. El síntoma de inicio / detención neto tiende a ocurrir con mayor frecuencia si el servicio fue cancelado (a través de taskkill), por ejemplo, al intentar iniciar el servicio con inicio neto después de taskkill.


2

Izquierda para decir que si la rutina OnStart () de un servicio lleva demasiado tiempo, NET STARTenvía un comando de detención al servicio y devuelve el siguiente error:

El servicio ServiceName se está iniciando ........

El servicio ServiceName no se pudo iniciar.

El servicio no informó de un error.

Hay más ayuda disponible escribiendo NET HELPMSG 3534.

¡Esto sucede aunque el servicio se ha iniciado y detenido con éxito!

También encontré esta publicación aquí, que podría ser interesante: no se pudo iniciar el servicio

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.