Los servicios se pueden detener e iniciar usando dos comandos en el símbolo del sistema Shell.
- servicio de inicio neto "algún servicio"
- sc comienza "algún servicio"
¿Cuál es la diferencia entre estos comandos?
fuente
Los servicios se pueden detener e iniciar usando dos comandos en el símbolo del sistema Shell.
¿Cuál es la diferencia entre estos comandos?
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.
sc
solo 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
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
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.
fuente
Izquierda para decir que si la rutina OnStart () de un servicio lleva demasiado tiempo,
NET START
envía un comando de detención al servicio y devuelve el siguiente error:¡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
fuente