
Os serviços podem ser interrompidos e iniciados usando dois comandos no Command Prompt Shell.
- serviço net start "algum serviço"
- sc iniciar "algum serviço"
qual é a diferença entre esses comandos?
Responder1
No Windows NT, ambos os comandos acessam o mesmo Service Manager. A diferença está principalmente na parte visível ao usuário:
net
é mais antigo – da época do MS-DOS e do OS/2, na verdade.sc
só apareceu com o Windows NT(não tenho certeza de qual versão).net
só pode iniciar, parar e pausar serviços.sc
possui controles mais avançados, pode consultar estado, criar e excluir serviços, alterar sua configuração e segurança:sc config beep start= demand
net
só funciona localmente.sc
pode ser usado pela rede:sc \\snow start rpcapd
net
aceita nomes de exibição:net start "Windows Firewall"
sc
sempre requer um nome de serviço:sc start SharedAccess
Responder2
A resposta do Grawity é certamente útil, mas encontrei uma diferença fundamental entre esses comandos detalhados emhttp://cbfive.com/command-line-service-management-net-v-sc/. Em particular, esta página observa que esses dois comandos diferem em suastempo:"net" é síncrono e "sc" é assíncrono.
SC envia o controle para o serviço e depois retorna ao prompt de comando. Isso normalmente faz com que SC START retorne o serviço no estado START_PENDING. NET START aguardará que o serviço que está começando chegue a um estado totalmente iniciado antes de retornarcontrole no prompt de comando.
...
[Como] SC START,SC STOP não espera que o serviço pare e retornará frequentemente STOP_PENDING para muitas operações de parada de serviço. NET STOP, por outro lado, aguardará a parada do serviço antes de retornar ao prompt de comando.
...
NET e SC têm ideias diferentes sobre o que consideram condições de sucesso. A pergunta que o SC faz para determinar se foi bem-sucedido é: “Enviei com sucesso um controle de parada para o serviço?” Se isso acontecesse, independentemente de o serviço ter sido interrompido, eu satisfaria a condição de sucesso. NET faz a pergunta: “O serviço que tentei parar retornou que foi interrompido com sucesso?” Se sim, então satisfez a condição. Caso contrário, não importa o motivo, o NET falhará na condição de sucesso
Responder3
Pelo que vale, descobri que sc start/stop é mais confiável do que net start/stop. Às vezes, net start/stop fazia com que o serviço ficasse preso em um estado Iniciando/Parada, enquanto isso nunca me ocorreu com sc start/stop. O sintoma net start/stop tende a ocorrer com mais frequência se o serviço foi eliminado (via taskkill), por exemplo, tentativa de iniciar o serviço com net start após taskkill.
Responder4
Resta dizer que se a rotina OnStart() de um serviço demorar muito, NET START
envia um comando de parada para o serviço e retorna o seguinte erro:
O serviço ServiceName está iniciando........
O serviço ServiceName não pôde ser iniciado.
O serviço não relatou um erro.
Mais ajuda está disponível digitando NET HELPMSG 3534.
Isso acontece embora o serviço tenha sido iniciado e parado com sucesso!!
Também encontrei este post aqui, que pode ser interessante: Não foi possível iniciar o serviço